資源描述:
《NGUI中深度depth和z軸關(guān)系2》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、在相同Panel下,相同Atlas中的Sprite才受Depth控制,其他情況則受z軸控制,但同時又受前者影響。??列個表的話就是:1、相同panel??相同atlas??sprite受depth控制2、相同panel????不同atlas??sprite受z軸控制??(同時受1的影響)3、不同panel??相同atlas??sprite受z軸控制??(同時受1的影響)4、不同panel??不同atlas??sprite受z軸控制??(同時受1的影響)???不過要特別注意的是,雖然depth控制的范圍看似較少,但它卻占主導(dǎo)地位,是最常被用到的,這是因為
2、NGUI基于Atlas,只有在1無法達(dá)到目的的時候,才會去用其他的。?而且在較復(fù)雜的情況時它也是易被忽略的,也就是2、3、4括號中的“同時受1的影響”。比如在2中,相同panel下,有三個sprite:A、B、C,但A和B的Atlas是相同的,C是的Atlas是另一個,此時即使用z軸控制,也無法將C放到AB之間,這也是上樓中3中所提到的問題。此外關(guān)于字體,感覺要分兩方面,一個是英語等外語,一個是中文。對于英文,因為就那些有限的字母(因為只會點英語,所以不知道是不是有的外語制作起來也很繁雜),所以可以和圖片sprite放到一起,官方的atlas中就是這樣
3、的分布,把字體和圖片打包在了一起。這種情況下我感覺字體和圖片是在同一個atlas里面的,使用起來也只是占1個drawcall。而同一個atlas中的sprite,則可用depth來調(diào)整深度。比如上面1234例子里的Label就是英文字體,它是和Dark這個圖片同在SiFi圖集中,所以在相同panel下可用depth來控制顯示順序。但此時想再插入一個其他atlas中的sprite到他倆之間的話,就會不成功,因為他倆是一個atlas中的。而不同的panel下就只能用z軸來控制了。比如用SiFi的Label,此外再用wooden圖集的button,他倆只用d
4、epth是沒法控制的。如下圖中,后綴表示label的depth是10,而button的depth是0,但button還是擋住了label,這和上面說的第4條一樣。此外對于將文字打包到Atlas中,是在制作字體是,在FontMaker中選擇目標(biāo)Atlas,此時就會將文字打包到了此Atlas中。不過要注意,這個操作會修改Atlas,所以不要弄錯了如下圖,就是將官方的Arimo14字體打包到了DiShuTest圖集中,也就是在Output選項中選擇Atlas。而orselect這項中的字體會被替換掉,可以不選,當(dāng)然Atlas在不打包字體的時候也可以不選而對于
5、中文,文字因為不能像英文那樣用單個的字母來組成,所以為了能顯示大多數(shù)的常用字,一般都是用單獨的UIFont來制作,可看做是一個atlas,這種情況下,字體的atlas和其他的atlas就是在不同的圖集了。此時可用z軸來控制。比如下圖中,用了3個Atlas,都放到同一個panel下,后綴表示的depth,注意左邊的那4個是參照,只為了能看清都是那些東西。分別是:Atlas1,使用一個sprite,人物為程咬金,depth為3Atlas2,實際是一個中文Font字體的label,也看做是圖集,depth是2Atlas3,最后兩個精靈都是用的Sift中的,d
6、epth是0和1然后把它們都放到一個panel下,而你做試驗的時候可能顯示的順序不一樣,但不要緊,我們關(guān)注的是它們是不是以depth的順序排列了,而看一下就知道,它們并沒按順序排列,比如NGUI的depth是1,但它卻顯示在了最上面?,F(xiàn)在用z軸控制他們的顯示順序和depth一樣,很容易就做到了。這些試驗都是在比較簡單的情況下做的,所以可能并不真的對,所以如果有錯誤的地方請指出。