2D UI的工作原理
UI控件的位置在UI Root 的紅框(視窗)上,也就是UI控件的z軸,相機的z軸,UI Root的z軸都是0,因為2D UI都是純粹的2D圖片按層次顯示,不會不出現三維立體效果,所以都是直接緊貼着視窗,只要UI控件在UI Root的紅框范圍內,那么UI就能夠正常顯示在Game上。
2D UI最本質的意義是:UI攝像機是一個正交攝像機。
3D UI的工作原理
在3D UI下,創建的UI控件都在一個三維立體空間中,攝像機是一個透視的攝像機,這和2D UI有着截然不同的區別,因為2D UI是一個正交攝像機。
3D UI中UI Root的坐標點是在三維空間的一個點上,這個位置是創建UI時自動定義好的,以后創建的UI控件都會自動地在這個點所在的面上生成(自動統一到UI Root的z軸)
注意:如果需要將2D UI改為3D UI,不是簡單地將攝像機改為透視模式就行了,在NGUI 3.6.0以后的某些版本中,這樣會導致看不到任何UI控件(這些版本的2D UI的空間和Camera、UI Root三者在同一個z軸面上,而變成3D攝像機后看不到和攝像機同z軸的物體),如果將3D UI的攝像機直接改為正交模式,也並不能簡單地變成2D UI,因此正交相機的Size並不和NGUI默認的值一樣。
如何判斷該選擇哪一種UI
1.新版本的NGUI對3D UI支持很好,如果3D UI和2D UI選擇哪一個都行的情況下,建議選擇3D UI,擴展性更強。
2.如果出現UI不允許有遠近透視的大小變化,必須選擇2D UI。
3.如果要出現UI有三維變換的效果,就必須用3D UI。
4.無法明確知道應用哪一種UI的情況下,建議選用3D UI。
5.不論用哪一種UI,其實本質上只是一個攝像機的區別,基本上都能實現UI效果,只是需要的處理不一樣。