前幾篇文章我用短短的程式碼和簡單的設定就完成了分割Sprite、角色移動和Main Camera大小設定。接著該來做遊戲中裝備掉落、接獲裝備的系統了。
先簡單介紹一下我想要的功能大概如何運作:
在遊戲進行中,有一定機率會從螢幕上方掉落裝備。
如果主角接到掉落的裝備,會把它戴在頭上。(戴在頭上的裝備會持續發射子彈或擁有其他功能,不過那些留到之後再做)
如裝備離開螢幕,則自動移除該裝備。
在動手做之前,我先來解釋一下之後會大量用到的Game Object和Component之間的關係。
在Unity中,每個場景(Scene)都是由許多Game Object組成的。Game Object本身沒有什麼功能,真正的功能存在於Component中。所以為了使Game Object達成特定的功能,就必須為Game Object加上(Attach)擁有特定功能的Component。例如,點一下先前做的角色,可以在Inspector中看到它所擁有的Component,包括Transform、Sprite Renderer和我們用C#寫的Player Movement (Script)。每個Game Object都會有一個Transform Component(UI GameObject 除外),用來控制與顯示Game Object的位置(Position)、旋轉角度(Rotation)和縮放比例(Scale)。除了Transform Component外,其他Component通常都會有一個「打勾」的符號在旁邊
點擊打勾的符號可以任意啟用(enable)或關閉(disable)該Component。
做個小實驗。進入Play Mode,如果把主角的Player Movement (Script) Component關掉,就無法用鍵盤控制角色。如果把Sprite Renderer關掉,角色的圖片就會消失。
了解Game Object和Component之間的關係後,馬上來為遊戲角色增加新的功能(也就是Component)。
選取我先前做好的角色,按在Inspector最下方的「Add Component」按鈕,選Physics 2D→Box Collider 2D。現在該角色就擁有Box Collider 2D Component了。
Box Collider 2D (以及所有的Collider 2D 和 Collider) 主要用來偵測碰撞。Collider常常會搭配Rigidbody/Rigidbody 2D一起使用,來模擬剛體運動與物理碰撞。
在Box Collider 2D中,點一下Edit Collider旁邊的按鈕,可以在Scene中調整Collider的範圍(即綠色的框框)。稍微把框框往內拉一點,這就是主角可以偵測是否接到掉落裝備的有效範圍了。
今天忙著做動開始動畫……遊戲本身好像沒有什麼進度,不過動畫快完成了!!!
明天繼續