版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2019.01.28 星期一 |
前言
Unity是由Unity Technologies開發(fā)的一個讓玩家輕松創(chuàng)建諸如三維視頻游戲拱礁、建筑可視化嘹锁、實時三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具豌注,是一個全面整合的專業(yè)游戲引擎妙真。Unity類似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的圖型化開發(fā)環(huán)境為首要方式的軟件蝠嘉。其編輯器運行在Windows 和Mac OS X下最疆,可發(fā)布游戲至Windows、Mac是晨、Wii肚菠、iPhone、WebGL(需要HTML5)罩缴、Windows phone 8和Android平臺蚊逢。也可以利用Unity web player插件發(fā)布網(wǎng)頁游戲,支持Mac和Windows的網(wǎng)頁瀏覽箫章。它的網(wǎng)頁播放器也被Mac 所支持烙荷。網(wǎng)頁游戲 坦克英雄和手機(jī)游戲王者榮耀都是基于它的開發(fā)。
下面我們就一起開啟Unity之旅檬寂。感興趣的看下面幾篇文章终抽。
1. Unity開啟篇(一) —— Unity界面及創(chuàng)建第一個簡單的游戲 (一)
2. Unity開啟篇(二) —— Unity界面及創(chuàng)建第一個簡單的游戲 (二)
3. Unity開啟篇(三) —— 一款簡單射擊游戲示例 (一)
4. Unity開啟篇(四) —— 一款簡單射擊游戲示例 (二)
5. Unity開啟篇(五) —— 一款簡單射擊游戲示例 (三)
6. Unity開啟篇(六) —— Unity動畫簡介 (一)
7. Unity開啟篇(七) —— Unity動畫簡介 (二)
8. Unity開啟篇(八) —— Unity聲音簡介(一)
9. Unity開啟篇(九) —— Unity聲音簡介(二)
10. Unity開啟篇(十) —— Unity粒子系統(tǒng)簡介(一)
11. Unity開啟篇(十一) —— Unity粒子系統(tǒng)簡介(二)
12. Unity開啟篇(十二) —— Unity腳本簡介(一)
13. Unity開啟篇(十三) —— Unity腳本簡介(二)
14. Unity開啟篇(十四) —— Unity UI簡介(一)
15. Unity開啟篇(十五) —— Unity UI簡介(二)
16. Unity開啟篇(十六) —— Unity UI簡介(三)
Displaying Dialog on Button Click
禁用Animator
組件,以便通過將isHidden
的默認(rèn)值設(shè)置為true
桶至,它不會在開始時播放動畫昼伴。 單擊Animator
窗口中的一些空白區(qū)域,然后將isHidden
設(shè)置為true
當(dāng)您現(xiàn)在運行場景時镣屹,對話框不會立即顯示 - 這很好 - 但是圃郊,即使單擊設(shè)置按鈕也不會顯示。 這個不好女蜈。
打開UIManagerScript
并添加以下實例變量:
public Animator dialog;
然后將以下代碼添加到OpenSettings
的末尾:
public void OpenSettings()
{
//..skipped..
dialog.SetBool("isHidden", false);
}
這將啟用Animator
組件并為isHidden
參數(shù)設(shè)置正確的值持舆。
最后添加一個名為CloseSettings
的新方法,如下所示:
public void CloseSettings()
{
startButton.SetBool("isHidden", false);
settingsButton.SetBool("isHidden", false);
dialog.SetBool("isHidden", true);
}
這將返回按鈕并隱藏對話框伪窖。 您將立即添加調(diào)用此方法的UI元素逸寓。
保存UIManagerScript
并切換回Unity
編輯器。
在Hierarchy
中選擇UIManager
覆山,然后將Dlg_Settings
拖到Inspector
中的Dialog
字段中竹伸。
運行場景,然后單擊Settings
按鈕汹买,查看對話框滑入時按鈕如何滑出佩伤。
那更好聊倔,但你無法關(guān)閉對話框。
要解決此問題生巡,您需要在對話框中添加某種關(guān)閉按鈕耙蔑。
Adding the Close Button
選擇GameObject \ UI \ Button
以創(chuàng)建按鈕。 將此新按鈕重命名為Btn_Close
并將其拖動到層次結(jié)構(gòu)中的Dlg_Settings
上孤荣,以將其添加為子對象甸陌。 此外,此按鈕上沒有文本盐股,因此刪除嵌套在Btn_Close
中的Text
對象钱豁。
這是您在層次結(jié)構(gòu)中應(yīng)該具有的內(nèi)容:
現(xiàn)在選擇Btn_Close
并按照以下步驟操作:
- 1) 將錨點設(shè)置為
top-right
。 - 2) 將
Pos X
和Pos Y
都設(shè)置為0疯汁。 - 3) 在“項目”窗口中打開
Menu
文件夾牲尺,然后將settings_btn_close
拖到“檢查器”中的Source Image
字段中。 - 4) 單擊
Set Native Size
幌蚊。
這是對話框現(xiàn)在在Scene
視圖中的外觀:
注意:這次谤碳,您將使用另一種方法突出顯示按鈕的圖像(Button腳本中的
Transition
屬性),稱為ColorTint
溢豆,這是默認(rèn)的過渡類型蜒简。 您將執(zhí)行此操作,而不是添加另外兩個圖像來表示突出顯示和按下的按鈕狀態(tài)漩仙。
按鈕看起來很棒搓茬,但它什么也沒做。 幸運的是队他,您已經(jīng)添加了此按鈕需要調(diào)用的方法卷仑。
在Hierarchy中選擇Btn_Close
,向下滾動到On Click()
列表并單擊+麸折。 將UIManager
從Hierarchy拖動到新項目系枪,然后在下拉列表中選擇UIManagerScript \ CloseSettings()
方法。
選擇File / Save Scenes
以保存到目前為止的工作磕谅,然后Run the scene
。 單擊Settings
按鈕雾棺,在對話框滑入場景后單擊Close
關(guān)閉場景膊夹。
嘿,你做得很好捌浩。 那看起來不錯放刨!
Adding Sound Settings
保持無意義的設(shè)置對話框沒有多大意義,因此尸饺,是時候向它添加一些實際設(shè)置了进统。 在此對話框中助币,player
將控制菜單場景中音樂的音量。
音樂螟碎? 是的眉菱,沒有音樂的游戲有什么樂趣?
1. Adding Music to the Menu Scene
您可以在文件周圍搜索合適的剪輯掉分,但是您不必這樣做俭缓,因為該項目已包含一個活潑的音樂曲目。 你需要做的就是播放它酥郭。
在層次結(jié)構(gòu)中選擇Main Camera
华坦,然后添加Audio Source
組件。 然后不从,在Project window
窗口中惜姐,打開Audio
文件夾并將音樂拖動到“檢查器”中的Audio Clip
字段。
啟用Play On Awake
椿息。
2. Toggling Music On and Off
要打開和關(guān)閉音樂歹袁,您將使用切換控制。 選擇GameObject \ UI \ Toggle
將切換UI元素添加到場景中撵颊。
切換控件由附加了Toggle
腳本的根對象和幾個子對象組成:
- Background:始終可見的圖像(即處于打開和關(guān)閉狀態(tài))
-
Checkmark:僅在切換激活
(ON)
時可見的圖像宇攻。 - Label:切換旁邊顯示的標(biāo)簽。
這次您不需要標(biāo)簽倡勇,因此請刪除嵌套的Label
逞刷。 然后重命名切換到Tgl_Sound
并將其拖到Dlg_Settings
上以將其放入對話框中。 這是您在完成后應(yīng)在層次結(jié)構(gòu)中看到的內(nèi)容:
在層次結(jié)構(gòu)中選擇Tgl_Sound
妻熊。 將其錨點設(shè)置為middle-left
夸浅,Pos X
設(shè)置為115,Pos Y
設(shè)置為-10扔役。
注意:還記得如何相對于父級設(shè)置錨點和位置嗎帆喇? 這就是為什么首先將
tgl_sound
添加為dlg_settings
的子元素并且僅在設(shè)置其位置之后才重要。請記住亿胸,更改錨點和樞軸不會更改UI元素位置坯钦,而是將位置字段(例如
Pos X,Pos Y侈玄,Left婉刀,Right
)更新為通過使用新錨點和pivot
將元素定位在同一位置的值。 首先設(shè)置它們序仙,然后使用它們來設(shè)置正確的位置突颊。
此外,在Toggle(Script)
組件下,取消選中Is On
復(fù)選框律秃。
現(xiàn)在爬橡,您需要為Background
和Checkmark
子對象指定圖像。 就像您完成其他圖像一樣棒动,您將從Menu folder
中獲取它們糙申,因此在Project
窗口中打開該文件夾。
你需要兩張圖片:
-
settings_btn_sound
為背景 -
checkmark
的settings_btn_sound_checkmark
選擇層次結(jié)構(gòu)中tgl_sound
中包含的背景迁客,并將“項目”窗口中的settings_btn_sound
拖動到Inspector
中的Source Image
郭宝。 然后單擊Set Native Size
。
然后選擇Checkmark
并重復(fù)前面的步驟掷漱,但這次使用Project
窗口中的settings_btn_sound_checkmark
圖像粘室。
這是您應(yīng)該在Scene View
中看到的內(nèi)容:
注意:如您所見,根對象(寬矩形)的大小與背景圖像不匹配卜范。 你可以調(diào)整它的大小衔统,但這樣就好了。
Muting the Music
關(guān)于UI元素的事件處理程序的好處是海雪,有時你可以在不編寫任何代碼的情況下進(jìn)行锦爵。 相反,您可以設(shè)置UI元素以更改屬性奥裸,或僅使用Unity的界面直接調(diào)用附加到對象的組件的函數(shù)险掀。
以下是如何更改附加到MainCamera
的Audio Source
組件的靜音(mute)
屬性。
在Hierarchy
中選擇Tgl_Sound
湾宙,然后在Inspector
中找到On Value Changed(Boolean)
列表樟氢。 單擊+以添加新項目。
將MainCamera
從層次結(jié)構(gòu)拖動到新添加的項目侠鳄。 打開功能選擇下拉列表埠啃,從頂部的Dynamic bool
部分選擇AudioSource \ mute
。
注意:仔細(xì)查看函數(shù)選擇選項時伟恶,您將看到兩個
mute
屬性:一個在Dynamic bool
部分碴开,另一個在Static Parameters
中。差異非常小博秫。如果在
Dynamic bool
部分中選擇靜音潦牛,則每次切換時,其值都將設(shè)置為切換的Active
屬性的當(dāng)前值挡育。如果從
Static Parameters
部分中選擇mute
屬性罢绽,則會出現(xiàn)新的輸入字段,您可以將其在Inspector
中的值設(shè)置為某個常量值静盅。當(dāng)然,在
Dynamic bool
部分中,只有屬性和方法采用bool值蒿叠,因為toggle
的激活屬性類型是bool
明垢。由于您可以將任何值指定為靜態(tài)參數(shù),因此Static Parameters
部分包含所有公共屬性和方法市咽。
因此痊银,當(dāng)切換處于激活狀態(tài)時(例如,等于true)施绎,它將AudioSource
的mute
屬性設(shè)置為true
并使音樂靜音溯革。
選擇File / Save Scenes
以保存到目前為止的工作,然后run the scene
谷醉,打開設(shè)置對話框并嘗試打開和關(guān)閉音樂致稀。
Using Slider to Regulate the Volume
切換開關(guān)可以將其ON
和OFF
狀態(tài)與其他組件的某個字段同步,這真的很酷俱尼,但如果您有一系列值抖单,該怎么辦? 在這種情況下遇八,您可以使用Slider UI
元素矛绘。
選擇GameObject \ UI \ Slider
添加滑塊。 將其重命名為Sdr_Volume
并將其放在Dlg_Settings
中刃永。
在Hierarchy
中選擇Sdr_Volume
并將其錨點設(shè)置為middle-right
货矮。 然后將其錨點設(shè)置為(1,0.5)
,以便您可以使用其右邊緣的中間點來定位它斯够。
最后將其Pos X
設(shè)置為-20囚玫,將Pos Y
設(shè)置為-10,將Width
設(shè)置為270雳刺,將Height
設(shè)置為35劫灶。
這就是Settings
對話框現(xiàn)在應(yīng)該如何顯示的方式:
如果您查看層次結(jié)構(gòu),您將看到滑塊控件的部件不僅僅包含切換開關(guān)或按鈕掖桦。 以下是主要部分:
- Background:圖像顯示滑塊的邊界及其內(nèi)部區(qū)域未填充時(即手柄一直向左)本昏。
- Handle:手柄的圖像。 您拖動它以更改滑塊的值枪汪。
- Fill:拉伸以顯示滑塊值的圖像涌穆。
實際上,填充圖像不是唯一可以拉伸的部分雀久,因此通常最好對所有三個部分使用9-scale images
宿稀。
在Project
窗口中打開Menu
文件夾,找到與滑塊各部分對應(yīng)的三個圖像:slider_background
赖捌,slider_fill
和slider_handle
祝沸。
對于每個圖像矮烹,在Inspector
中打開Sprite Editor
,并將Border
的所有值設(shè)置為8罩锐,單擊Apply
奉狈。
現(xiàn)在您需要為滑塊的每個部分設(shè)置相應(yīng)的圖像:
- 1) 選擇
Background
并在檢查器中將slider_background
拖動到Source Image
。 - 2) 選擇
Fill
(不是Fill Area
)并將slider_fill
拖動到Source Image
涩惑。 - 3) 選擇
Handle
并將slider_handle
拖動到Source Image
仁期。
如果現(xiàn)在運行場景并打開Settings
對話框,您應(yīng)該會看到如下內(nèi)容:
Changing the Volume of the AudioSource Component
使用滑塊更改音樂音量類似于您使用切換開關(guān)(toggle)
所做的操作竭恬。
在層次結(jié)構(gòu)中選擇Sdr_Volume
跛蛋。 在Inspector
中,向下滾動以查看On Value Changed(Single)
列表痊硕,然后單擊+
以添加新項目赊级。
將MainCamera
從Hierarchy
拖動到列表中的新項目,打開函數(shù)選擇下拉列表寿桨,然后在Dynamic float
部分中選擇AudioSource \ volume
此衅。
選擇File / Save Scenes
以保存到目前為止的工作,然后run the scene
亭螟,打開設(shè)置對話框并更改滑塊的值挡鞍。 拖動滑塊手柄時,您應(yīng)該聽到音量上下移動预烙。 就個人而言墨微,我發(fā)現(xiàn)它是一個非常棒的功能。
下一篇扁掸,您將學(xué)習(xí)高級技術(shù)翘县,包括使用mask
組件創(chuàng)建滑動菜單。 此外谴分,您將創(chuàng)建更多動畫并學(xué)習(xí)如何將舊GUI
代碼遷移到Unity UI
锈麸。
后記
本篇主要講述了Unity UI簡介,感興趣的給個贊或者關(guān)注~~~