【Unity】UGUI系列教程————UGUI基礎!界面拼接!
簡介:
在目前的遊戲市場上,手游依然是市場上的主力軍,而只有快速上線,玩法系統完善的遊戲才能在國內市場中佔據份額。而在手游開發過程中,搭建UI系統是非常基本且重要的技能,極端的說如果對Unity的UI系統熟悉,就可以去遊戲公司上班了 :)(笑~)。
但是就像蛋炒飯,最簡單的事要做好也是非常困難的。UI這塊的變動也經常是整個遊戲最頻繁的一塊,如果沒有一個合理的設計思路,和管理方案,後期將會陷入無止境的調試優化之中。
萬丈高樓平地起,現在讓我們開始從Unity中的UGUI系統進行講解。
創建一個UI畫布
直接新建場景,右鍵Hierarchy窗口,選擇UI選項,點擊列表中出現的Canvas(畫布)選項
點擊之後出現兩個物體
Canvas:UI的畫布,我們的UI圖片都會在這下面渲染。
EventSystem:UI的事件系統,很多新手都會選擇遺忘掉這個組件,結果後來做了一個按鈕出來不能點擊,原因就是這個物體被誤刪了。
創建一個Image組件
在Canvas上右鍵,選擇UI選項中的Image選項
一個默認的Image圖片出現在了遊戲框之中
注意:UI的圖片只會在Canvas下才能看得見,這裡我將Image移除了Cansvas,鏡頭內的圖片消失了
RectTransform組件參數說明
UI的RectTransform組件中涵蓋了位置,旋轉,縮放,錨點等等信息
Width和Height:一般UI裡面放大和縮小圖片的寬度和高度都是通過這裡來控制的,而不是直接調整縮放值
Anchors:錨點位置,屏幕的寬高變化時要讓UI依然能按照預想的正常顯示,就需要通過錨點來定位。具體見後續文章中的屏幕自適應部分內容。
Pivot:中心點,該屬性定義圖片的中心點位置,(0.5,0.5)改好為圖片中心。若我們想左右拉長一個橫條,想讓它只在右邊增長,修改中心店位置(0,0.5),中心點位在最左邊,調整Width就會只看到橫條在右方向的長度變化。
Image組件的參數說明
Unity大多用於圖片顯示的UI組件都會有基礎的Image組件
SourceImage:該UI顯示的圖片資源,注意這裡只能支持Sprite類型的圖片,後面會介紹Sprite類型的圖片怎麼設置。
Color:修改該圖片的顏色。
Material: Unity支持自定義圖片材質來實現複雜的效果,不填的話默認只用unity已經設置好的UI材質效果。在遊戲設計中幾乎不會修改這裡的內容。
RaycastTarget: 勾選該選項後,該UI將會響應射線點擊,滑鼠點擊到這個UI物體的時候事件管理器知道我們點擊了什麼物體,這個參數會和Button組件配合,完成我們的點擊操作。
創建一個UI圖片
導入一張圖片,選擇TextureType的類型為Sprite(2D and UI)後,點擊Apply。這時Unity會修改圖片為Sprite類型的圖片,只有這種類型才能放入Image組件中。TextureType的其他參數會放在之後的UI圖集知識點中說明。
直接將圖片拖入Image的SourceImage中,圖片便渲染出來了,此時圖片採用的像素是100X100的像素,只用點擊Image新出來的按鈕就可以設置為圖片本身的像素尺寸。
現在圖片已經顯示出來了:
創建一個Button按鈕
右鍵選擇UI中的Button選項
創建出來的Button只有Button和Text兩個物體,Text是unity的文字顯示組件,Button的功能本身和Text沒有任何關聯,因此這裡可以將Text刪除掉(Unity將Text和button一起創建主要是因為按鈕帶文字更加常見)
Button物體上只有兩個組件,一個組件是之前介紹過的Image組件,一個是按鈕功能相關的Button組件。我們導入一張新的圖進入工程,改變圖片格式成Sprite格式後拖到Image上,然後點擊SetNativeSize按鈕修改RectTransform中的寬度高度和原圖片相同。
按鈕UI顯示了出來,運行遊戲,點擊這個按鈕會發現UI顏色會變化,說明按鈕功能生效了。
Button組件參數說明
Interactable:是否開啟按鈕交互,若取消則按鈕會變成DisabledColor選擇的顏色,此時按鈕不會響應點擊操作。
TargetGraphic:Button組件綁定的Image組件,注意如果該項為空按鈕點擊事件將會失效,同時是有按鈕綁定的Image組件勾選了RaycastTarget參數才能有點擊效果。
Transition:按鈕的點擊效果類型,unity自帶了3種類型,分別為Color Tint(顏色變化),Sprite Swap(圖片切換),Animation (動畫變化)。不同類型對應的Normal XXX,Highlighted XXX,Pressed XXX,Disabled XXX,分別為按鈕不點擊時效果、滑鼠移動到按鈕時效果、點擊時效果和未激活時效果。
OnClick(): 點擊事件,可以關聯點擊按鈕後的行為至我們自己寫的代碼中。後續的文章會繼續講解UGUI的事件處理
創建一個Text文本框
右鍵Canvas,選擇UI中的Text組件
Text組件的參數說明
上面的text創建出來不明顯,因為我們參數還未開始設置,首先我們來看下Text組件的參數:
Font:字體設置,unity默認字體是Arial。可以從我的電腦中選取其他字體替換,也可以網上下載放在unity中替換。
FontStyle:字體的加粗,傾斜等設置。
FontSize: 字體大小設置,這裡注意字體設置如果過大,超過了RectTransform設置的寬度或高度將不會顯示字體(很多時候美術PS中的字體大小和unity的字體大小有區別的,應該統一用像素大小來統一)。
LineSpacing:行間距,這個參數unity介紹的不清楚。其實他間隔的是你當前字體大小的倍數。
如果為1為以下效果:
如果為2則字體中間間隔了一個字體size的大小:
RichText:富文本選項,該選項如果勾選,可以通過加入顏色命令字元來修改字體顏色(例:<color=#525252>變色的內容</color>)。遊戲的公告的編輯就需要該功能。
Paragraph:
Alignment為設置文件上下左右居中等對齊效果
AlignByGeometry為幾何對齊,圖文混排的時候需要該功能配合
HorizontalOverflow和VerticalOverflow分別為水平和豎直換行,如果Wrap和Truncate選項,內容將會束縛在設置定寬度高度之內,如果選項為Overflow內容將會超出設定的邊界。
BestFit:勾選這個選項,字體將會以RectTransform的寬度高度邊界,動態修改字體大小讓所有內容剛好填充滿這個框。
Color:字體顏色,若用了富文本修改顏色,則不會改變用到了富文本的字體顏色。
RaycastTarget:和Image一樣,勾選該選項後,該UI會屏蔽射線,滑鼠點擊到這個字體的時候下面如果有按鈕區域將會被中止響應。
簡單處理UI的遮擋關係
UGUI中的層級是根據Hierarchy中,物體的上下關係來決定的。
Button在Image的下面,所以遊戲窗口中button遮擋了Image
若Image在button下面,Image將會遮擋button
創建一個界面
利用Image、Button和Text組件已經可以實現許多功能界面了,接下來用剛才講到的內容拼接一個簡單的音樂播放界面出來。
簡單創建一個純色的背景,暫定為灰黑色,寬度高度設置成屏幕的寬度高度解析度,屏幕解析度可以在Game窗口下設置。
背景圖片參數:
添加三個按鈕:
相反的圖片只用修改旋轉值便可以了:
創建一個Text,大小調整好後擺一個喜歡的位置:
最後放上一個CD圖標~
整體界面完成:
注意我們應該注重層級窗口中,對GameObject的命名格式規範,這樣我們便於在之後複雜的界面中去查找和修改我們的組件。
總結:
這一篇的教程主要是基礎組件的學習,可以說UGUI的其他組件都是根據Button,Image,Text組件拼接而成的。下一篇會針對UI的事件進行講解,了解完後就能開始添加按鈕功能,點擊按鈕完成界面變化和腳本功能的響應。
對遊戲開發感興趣的同學,歡迎圍觀我們:【皮皮關遊戲開發教育】 ,會定期更新各種教程乾貨,更有別具一格的線下小班教育。在你學習進步的路上,有皮皮關陪你!~
我們的官網地址:http://levelpp.com/
我們的遊戲開發技術交流群:610475807
我們的微信公眾號:皮皮關
推薦閱讀:
※爐石製作人主講 - 以《爐石戰記》為例,探討跨平台遊戲的製作思維與設計
※偏激地推薦一本書:《DOOM啟示錄》
※(譯)GDC13 Summary Animation Bootcamp Part 3
※基於 Unity 引擎的遊戲開發進階之 著色器(Shader)入門 & 圖形特效
※《InsideUE4》GamePlay架構(四)Pawn