關於Unity中的NGUI和UGUI
用Unity開發2D遊戲,有三套關系
1.GUI:Unity本身的對象
2.NGUI:以前在Unity中廣泛來做2D的,是第三方的包,需要安裝
3.UGUI:Unity5.X後,Unity找到NGUI的作者,開發了UGUI,變成內置於Unity中的包,官方主推
所有的元素都在Unity的UI工具欄
3D做2D遊戲的方法:
1: 使用正交攝像機;
2: 使用透視攝像機,將2D元素移動到合適的距離。
例如設計分辨率為 960x640, 得到在3D世界裏面一個圖片的大小w*h米,將這個圖片移動到一定的距離使得正確顯示出來
3: tag(視角*0.5) = (h/2) / zeye攝像機到精靈的距離; zeye攝像機到精靈的距離= h / (2 * tan(30));
960*640的zeye值大約是5.15,也就是要把Image的Z軸設置成5.15,這樣才能把Image剛好覆蓋整個Game視圖屏幕
1.創建一個2D精靈
2.把Texture Type改為Sprite
3.這時候會出現一個Pixeis Per Unit表示多少像素為一米
4.把圖片拖進Sprite屬性
5.旋轉直接修改Inspector的Z軸參數
6.縮放X,Y,比例為Z軸標準縮放比例
UGUI
底下有一個
1.一個Canvas管理所有的子UI節點:創建的時候會自動創建一個EventSystem節點,用來專門管理事件。如果直接創建一個Text,系統也會自動幫我們創建一個父Canvas節點和EventSystem節點
2.控件(Button,Label)
3.事件響應
Canvas節點,有四個組件
1.Rect Transform組件:不能改變,一創建就自動的組件,而且繼承自Transform組件
2.Canvas組件:Render Mode:(1)Screen Space (overlay):自適應屏幕空間,覆蓋在屏幕最上面,像電視機的菜單一樣,總是在最上面 。
(2)Screen Space (Camera):在沒有設置Camera屬性的時候,和第Screen Space (overlay)一樣。
(3)World Space:等於用手動設置Scale,等於之前3D做2D遊戲的手動方法。使得2D和3D節點很好地融合在一起。
Plane Distance:2D和3D的遮擋關系,可以把3D遊戲弄的遠遠的,或者近近的。
3.Canvas Scaler組件:就像上面的縮放X,Y,比例為Z軸標準縮放比例
UI Scale Mode:(1)Content Pixel Size:窗口多大就顯示多大的Image節點,不會縮放節點全部顯示。
(2)Scale With Screen Size:按照屏幕來進行縮放
Match:不同的分辨率轉換的時候的X,Y的轉換因子大小,比如960*640轉800*480,X,Y的比例縮放因子設置。
Image節點直接點擊Set Native Size就會讓Image節點自適應在屏幕上,全部顯示。
Imgae組件是無交互式的組件,可以設置顏色,也可以掛材質球(但是只適用於Screen Space (overlay)),設置貼圖屬性,preserve aspact保持縮放比。
關於Unity中的NGUI和UGUI