文章

實現基本的物理交互,例如重力與碰撞

在Unity中,實現基本的物理交互,如重力和碰撞,是遊戲開發的基礎。這些交互通常通過剛體(Rigidbody)和碰撞體(Collider)來完成。以下是一個示例,演示如何設置物體,使其能夠在場景中受重力影響並與其他物體發生碰撞。

1. 創建場景並添加物體

步驟

  1. 創建地面
    • Hierarchy 視圖中,右鍵選擇 3D Object > Plane,創建一個平面來作為地面。
    • 平面默認會自帶一個 Box Collider,這樣其他物體就能與它發生碰撞。
  2. 創建一個立方體
    • Hierarchy 視圖中,右鍵選擇 3D Object > Cube,創建一個立方體來作為要掉落的物體。

2. 配置物理屬性

為立方體添加剛體(Rigidbody)

  1. 選擇立方體。
  2. Inspector 視圖中,點擊 Add Component
  3. 搜索並選擇 Rigidbody,將其添加到立方體上。

配置剛體屬性

  • Use Gravity:確保此選項被選中,以便物體受到重力影響。
  • Mass(質量):保持默認值,或者根據需求調整質量。
  • Drag(阻力)Angular Drag(角阻力):可以保持默認值,用於控制物體運動時的減速和旋轉減速。

3. 測試重力與碰撞效果

運行場景

  1. 點擊Unity編輯器中的 Play 按鈕,運行場景。
  2. 你會看到立方體在重力作用下掉落,並與地面發生碰撞後停止。

4. 增加更多物體以觀察物理互動

添加更多物體

  1. 重複以上步驟,再添加幾個立方體或其他3D物體到場景中,並為它們添加 RigidbodyCollider
  2. 調整這些物體的位置,使它們在立方體上方或在場景中不同的高度。

運行場景

  1. 再次點擊 Play,觀察這些物體在重力作用下相互碰撞,並最終落在地面上。

5. 調整物理屬性進行更深入的交互

調整質量和彈性

  1. Rigidbody 組件中,調整物體的 Mass 來改變其受力情況。
  2. 給物體添加 Physic Material(物理材質),並設置 Bounciness 屬性來改變物體的反彈行為。

6. 使用C#腳本進一步控制物理行為

創建簡單的移動腳本

你可以編寫簡單的C#腳本來控制物體的物理行為。例如,讓物體在一定的時間內沿X軸移動:

1
2
3
4
5
6
7
8
9
10
11
using UnityEngine;

public class MoveObject : MonoBehaviour
{
    public float speed = 5.0f;

    void Update()
    {
        transform.Translate(Vector3.right * speed * Time.deltaTime);
    }
}
  1. 創建一個C#腳本,將上面的代碼粘貼進去,然後保存。
  2. 將腳本附加到你希望移動的物體上。
  3. 運行場景,觀察物體在物理運動的同時,受到腳本的控制進行移動。

小結

通過上述步驟,你可以實現基本的物理交互,如重力影響和碰撞檢測。使用 RigidbodyCollider 組件,你可以輕鬆設置物體的物理屬性,讓它們在場景中自然運動。這些基礎知識是創建複雜物理互動的起點,例如碰撞反應、力的施加和物體之間的連接。

本文章以 CC BY 4.0 授權