初識Unity
Game面板
Game面板是遊戲試玩窗口,展示的是遊戲中渲染的實際場景。在Game面板中不能直接通過拖動來移動、旋轉、縮放物體,也不能在Game面板中直接點擊選中物體。
有三個按鍵是對Game面板進行控制的,他們是:
Play按鈕:在2 by 3佈局下,Game面板會直接進入試玩模式;在default佈局下,Scene面板會自動被切換成Game面板,並將進入試玩模式。在試玩模式下不再能使用Unity引擎的快捷鍵,但可以在Game視圖內運行當前關卡。在試玩模式下再點擊Play會退出到編輯模式。
Pause按鈕:如果在編輯模式下先點擊Pause,再點擊Play,遊戲會在第一幀後暫停,如果在試玩模式下點擊Pause,遊戲會暫停,暫停狀態下點擊Play退出試玩模式,遊戲會同時退出暫停狀態。
Next Frame按鈕: 在Play狀態下點擊Next Frame按鈕會自動進入暫停狀態,並向後運行一幀,此後每次點擊該按鈕也會使程序運行一幀,這個按鈕的作用類似於斷點調試。
Game面板下的工具欄如圖所示
左側的下拉選項可以選取對應的分辨率,在Free Aspect模式下,分辨率會隨着Game面板的形變而自動改變,以填滿整個Game面板,修改這個選項可以將分辨率設定爲1920x1080等常見的分辨率配置。我們經常在Free Aspect模式下測試遊戲UI的自適配功能。
Scale滑動條可以縮放Game視圖,注意在這種情況下並不是縮放攝像機,而是縮放像素,所以在放大情況下圖像可能顯示不清。
Hierarchy面板
Hierarchy即樹形圖,一個場景中的物體是以樹形結構儲存的。Hierarchy面板中的物體,被稱爲GameObject。
在Hierarchy中,點擊一個GameObject就可以選中這個物體。按住Ctrl鍵可以進行加選和減選,而按住Shift鍵點擊兩個GameObject,可以快速的選中一連串對象。
一些GameObject前有一個三角形標記,點擊它就可以展開這個GameObject的子結點。在按住Alt鍵的情況下點擊三角標記,可以展開整個樹。
子物體所在座標系是父物體的模型空間座標系,而沒有父物體的GameObject,它們所在的座標系是世界空間座標系。當移動、旋轉、縮放物體時,它的模型空間座標系跟着進行移動、旋轉、縮放,這導致它的子物體也隨之移動、旋轉、縮放。
使用這一特性的一個實例:在一個RPG遊戲中,主角可以更換武器,已經提供了主角的模型和骨骼,以及多個武器的模型,保證每次更換武器,武器都可以準確的放在主角的手上,且主角在運動時武器依然綁定在主角的手上。實現方法是對於每個武器,將一個空GameObject放在武器需要被握着的手柄位置,作爲這個武器的軸點,然後在腳本中監控主角的右手骨骼,切換武器時將上述的空GameObject設爲右手骨骼的子物體,就可以保證武器在主角播放動畫時始終綁定在主角手上。上述腳本的寫法將在關於GameObject和Transform的章節中詳解。
Hierarchy樹的根節點是一個場景(Scene),在下圖中,所有GameObject的根節點是Sample Scene。
注:雖然GameObject的根節點是Scene,但在腳本中通過transform.parent無法獲得Scene對象,如果一個GameObject的父物體不是另一個GameObject,則上述語句返回null,這一點在Transform章節中會重新強調。
並非在所有情況下Hierarchy中都只有一個Scene,如下圖中存在三個場景:New Scene 1、SampleScene和MyScene2。但在任何情況下,Hierarchy中都有且只有一個“基場景”,在上圖中基場景是New Scene 1,其它場景我們都可以稱爲“同步場景”。更多關於場景的用法我們將在接後面關於場景的章節中詳細描述。
在Hierarchy面板中,我們可以創建新GameObject。我們既可以點擊左上角的Create菜單,也可以在Hierarchy面板的適當位置點擊右鍵來創建新物體。
在真實的工程中,我們經常在Hierarchy中創建的GameObject如下:
“Create Empty”:創建一個空GameObject,它默認沒有任何組件(除了Transform),包括Renderer組件,這表示它不會被渲染,不能附加材質。它的作用通常有兩個,一是作爲一個座標系,如前文提到的裝備武器的場景;二是作爲一個文件夾,在創建Prefabs和對場景中的物體進行管理時,將一部分GameObject設爲空物體的子物體,以此來將它們在Hierarchy樹型結構中隱藏。
“3D Object”->“Cube”/“Sphere”/“Capsule”:創建立方體、球體、膠囊體。一般3D遊戲的模型都是由美術提供的,作爲程序員我們不需要考慮模型的問題,而這裏創建的立方體、球體和膠囊體一般用於製作佔位符,在製作原型時頂替將來應該有模型的位置。注意,製作佔位符應當將新建的模型作爲空物體的子物體保存,這樣才方便未來替換美術資源。
”3D Object"->“Plane”/“Quad”:Plane常用作製作地板,而Quad常用作3D遊戲中的2D物體(如廣告牌和電腦屏幕)。Plane默認的大小是Quad的10倍,Plane默認的正面朝向y軸正方向,Quad朝向z軸負方向。它們都是背面剔除的,即攝像機從背面渲染時會表現爲透明。
“2D Object”->“Sprite”:2D遊戲中所有的GameObject都應以Sprite的形式實現。
“Effects”->“Particle System”:粒子系統,用於製作特效,將在粒子系統一章中詳述。
“UI”:用戶界面,細節極多,將在UI一章中詳述。
“Camera”:攝像機,將在攝像機一章中詳述。
在Hierarchy的搜索框中搜索物體時,除了被搜索到的GameObject外的其他物體都會顯示爲灰色。如果發現Scene中物體變成了灰白色,請檢查搜索框是否已經被清空。