前言
這篇文章將會講述彈簧物件的物件介紹、製作流程、展示影片。
Preferb | 預製物
Unity 的 Prefab 系統允許創建、配置和存儲遊戲對象,將其所有組件、屬性值和子遊戲對像作為可重複使用的資產,屬於 Asset 的一種,可以從中在場景中創建新的 Prefab 實例。
製作介紹及工具
要完成彈簧平台的製作,我們會使用程式腳本跟動畫編輯器。
設計思路
所謂彈簧平台,在遊戲中讓玩家或物體往上彈射,藉此到達特殊的位置或是觸發機關,同時我們要讓物件放進遊戲中就能使用,達成預製物的效果。
C# Script | 程式碼
在程式腳本中,我們會控制遊戲物件,讓它在碰觸到其他物件時,會觸發動畫事件並給予碰觸物件向上的推力。
Animator Animation | 動畫
在動畫腳本中,我們會控制物件的大小及碰撞體體積,運用動畫編輯器讓彈簧平台看起來有彈射某物體的效果,同時也能具有實質意義上的彈射碰撞體積。
示範影片
詳細流程
1. 創建一個 Cube,放置在遊戲中並命名為 Spring Platform,並調整大小讓它看起來像個平台。
2. 創建一個程式腳本,命名為 Spring Platform 並放置於彈簧平台中。
3. 添加碰撞組件,讓彈簧平台有碰撞體積。
4. 添加碰撞組件,勾選 is Trigger,略為縮小範圍並往上抬,這個步驟是希望讓玩家或物品踏上平台才會觸發事件,而非碰觸即觸發。
5. 添加 Animator ,並於Assets 新增 Animation Controller 和 Animation 並通通放進 Animator,點選物件並撰寫動畫,讓物件看起來有彈起的感覺。
6. 撰寫程式腳本,讓物件被觸發 (OnTriggerEnter) 時,會撥放 Animation 並對改寫該物件的 Rigidbody.velocity ,維持原速並額外新增向上的推力。
7. 測試,確認效果無誤和封裝後,製作成預製物。
後記
如果想優化美術圖,也是使用類似的方法製作,不過在碰撞體積的部分就要好好思考怎麼安排,如果使用 Mesh Collider 要注意面樹的問題,會影響整份碰撞體的耗能。
瓶裝雪