Unity Rigidbody 剛體物件

本教學以製作簡易射擊遊戲說明 Rigidbody 剛體的使用方法,包括 BB 槍、子彈、靶的互動功能。

 

製作子彈

功能需求:子彈生成後自主向前移動,可設定推力以控制移動速度,碰撞後掉落或刪除。

建立空物件並命名為 “Bullet” 並套用 Rigidbody 剛體元件,關閉 Use Gravity 停用重力的影響。

建立一個 C# 腳本並命名為 ”Bullet“ 用撰寫子彈的腳本,

方法一、使用 RigidbodyAddForce 讓子彈向前移動。

方法二、使用 Rigidbody.Velocity 讓子彈向前移動。

 

將 Bullet 腳本附加到 Bullet 子彈物件。

為 Bullet 物件增加 Capsule 膠囊子物件,並調整到適當大小與旋轉角度。

按下 Play 測試,確認子彈前進方向(使用 Vector3.forward 應該是 Z 軸)。

若需顯示子彈移動軌跡,附加 Trail Renderer 元件,設定材質並調整寬度。

 

新增 Bullet 標籤並套用到子彈,並拖曳到 Prefabs 資料夾轉成預製物件。

使用標籤可在稍後子彈擊中不同的物件時,製作不同的的互動效果與音效。

例如擊中物件破碎、擊中牆壁時動態生成貼花,擊中角色時置換為布偶角色。

 

製作靶物件

功能需求:被子彈擊中時發出音效,並掉落到地面。

建立空物件並命名為 ”Target“ 套用 Rigidbody 剛體元件,先關閉 Use Gravity 停用重力的影響。

套用 AudioSource 音效元件,設定子彈擊中的音效,取消 Play On Awake 自動播放。

建立一個 C# 腳本並命名為 “Target” 然後附加到 Target 靶物件。

 

製作槍物件

自行製作 BB 槍的模型,或是從資源商店搜尋,有不少免費的槍枝模型可下載。

建立一個空物件,重新命名 “Muzzle" ,移到槍口的位置,用於動態生成子彈。

撰寫槍的腳本。建立一個 C# 腳本並命名為 ”Gun“ 然後附加到 Muzzle 物件。

 

將剛才的 Bullet 子彈預製物件拖曳到 Bullet Prefab 欄位。

按下 Play 測試遊戲,確認子彈擊中靶的物理碰撞效果。