第一次接觸Unity的人,往往被它複雜的結構關係,弄得很煩。
其實只要稍微了解各元素之間的關係,對於往後撰寫程式碼就會很有幫助。
一、元素間的關係與結構
Game、Scene、GameObject、Components是組成一個Unity遊戲專案的基本元素。
下圖就非常清楚的講解了這四個基本元素之間的關係了。
一個Game就是一個Unity專案。
一個Unity專案可以包含好幾個Scene。
一個Scene,也就是一個舞台,舞台上可以擺放好幾個GameObject。
一個GameObejct可以add好幾個Component。
所謂的Component,可以是聲音(Audio),C#語法(Scripting),碰撞器(Collider)等。
基本上Components無法獨立存在,它必須附屬於GameObject上。
這就是為什麼想要動用語法,也就是Scripting的話,就必須給他一個GameObject可以add C# Script這個Component上去的原因囉!
二、哪些東西可被稱為GameObject呢?
以下我大致上把GameObject分成三類:
1.
所謂的GameObject,可以是Unity提供的Cube、Sphere、Capsule等(如下圖)。

2.
Empty GameObject也是GameObject。
所謂的Empty是指沒有mesh的空的一個GameObject。
看不見,依舊存在!
有時候你只需要撰寫程式碼時,卻不需要在舞台上放任何可見物體時,
直接把Scripting Component新增給Empty GameObject,
不失為一個好方法。

創建Empty GameObject的方法,如上圖所示。
① GameObject → Create Empty
② 點擊Inspector,看裡面的Component內容
③ 舞台上呈現的這個框起來的部分,就是Empty GameObject。
3.
所謂的GameObject,也可以是自己匯入的模型,譬如:.obj, .fbx檔案的模型。
下面這個又像老鼠又像兔子的生物??,就是從外部匯入的模型。

上述的這些放在舞台上的基本單元,都是GameObject。
而且,所有的舞台上的GameObject,會乖乖的呈現在左上角的這個視窗裡面(如下圖)。

以上述這張圖為例。
代表SamepleScene裡頭放了四個GameObject。
分別是Main Camera、Directional Light、Sphere、和GameObject。
三、那什麼是Component呢?
基本上,一個GameObject,可以攜帶好幾個Component。
以下圖為例。
① Sphere這個GameObject,攜帶了四個component
② 分別是
Transform
Sphere(Mesh Filter)
Mesh Renderer
Sphere Collider
③
如果你有Add Component的需求,
可以點擊Add Component,來新增Component。

四、如何在同一個專案裡面增加Scene呢?

① 先在Asset視窗裡,按下右鍵
② Create → Scene
就可以在Asset裡面,新增一個Scene。
在這裡取名為New Scene。
③ 你會發現,左上角的視窗上,又會增加一個scene上去了。
這就是呼應剛剛所說的,一個遊戲專案Game,可以包含好幾個Scene。
五、總結
再幫各位整理一遍,本文主要介紹Game、Scene、GameObject、Components四個基本元素。
一個Game就是一個Unity專案。
一個Unity專案可以包含好幾個Scene。
一個Scene,也就是一個舞台,舞台上可以擺放好幾個GameObject。
一個GameObejct可以add好幾個Component。
所謂的Component,可以是聲音(Audio),C#語法(Scripting),碰撞器(Collider)等。
有了這個階層關係的概念之後,您的腦袋裡,就可以開始構思,
一個遊戲專案裡面,想要放幾個Scene、幾個GameObject、幾個Component。
這幾個元素之間,彼此之間要怎麼互動,怎麼執行你需要的動作,來達成您想要的效果。
這些都可以事先規畫好,然後一步一步完成的囉!
二、哪些東西可被稱為GameObject呢?
以下我大致上把GameObject分成三類:
1.
所謂的GameObject,可以是Unity提供的Cube、Sphere、Capsule等(如下圖)。

2.
Empty GameObject也是GameObject。
所謂的Empty是指沒有mesh的空的一個GameObject。
看不見,依舊存在!
有時候你只需要撰寫程式碼時,卻不需要在舞台上放任何可見物體時,
直接把Scripting Component新增給Empty GameObject,
不失為一個好方法。

創建Empty GameObject的方法,如上圖所示。
① GameObject → Create Empty
② 點擊Inspector,看裡面的Component內容
③ 舞台上呈現的這個框起來的部分,就是Empty GameObject。
3.
所謂的GameObject,也可以是自己匯入的模型,譬如:.obj, .fbx檔案的模型。
下面這個又像老鼠又像兔子的生物??,就是從外部匯入的模型。

上述的這些放在舞台上的基本單元,都是GameObject。
而且,所有的舞台上的GameObject,會乖乖的呈現在左上角的這個視窗裡面(如下圖)。

以上述這張圖為例。
代表SamepleScene裡頭放了四個GameObject。
分別是Main Camera、Directional Light、Sphere、和GameObject。
三、那什麼是Component呢?
基本上,一個GameObject,可以攜帶好幾個Component。
以下圖為例。
① Sphere這個GameObject,攜帶了四個component
② 分別是
Transform
Sphere(Mesh Filter)
Mesh Renderer
Sphere Collider
③
如果你有Add Component的需求,
可以點擊Add Component,來新增Component。

四、如何在同一個專案裡面增加Scene呢?

① 先在Asset視窗裡,按下右鍵
② Create → Scene
就可以在Asset裡面,新增一個Scene。
在這裡取名為New Scene。
③ 你會發現,左上角的視窗上,又會增加一個scene上去了。
這就是呼應剛剛所說的,一個遊戲專案Game,可以包含好幾個Scene。
五、總結
再幫各位整理一遍,本文主要介紹Game、Scene、GameObject、Components四個基本元素。
一個Game就是一個Unity專案。
一個Unity專案可以包含好幾個Scene。
一個Scene,也就是一個舞台,舞台上可以擺放好幾個GameObject。
一個GameObejct可以add好幾個Component。
所謂的Component,可以是聲音(Audio),C#語法(Scripting),碰撞器(Collider)等。
有了這個階層關係的概念之後,您的腦袋裡,就可以開始構思,
一個遊戲專案裡面,想要放幾個Scene、幾個GameObject、幾個Component。
這幾個元素之間,彼此之間要怎麼互動,怎麼執行你需要的動作,來達成您想要的效果。
這些都可以事先規畫好,然後一步一步完成的囉!
沒有留言:
張貼留言