0

我在我的游戏中导入了一个游戏对象,它是在 3d 建模软件中创建的。现在我想控制那个游戏对象的运动,这样一旦它碰到另一个游戏对象就应该停止他的运动。

我已经读过,为此,游戏对象需要一个刚体。那么如何以及在脚本中的何处向该游戏对象添加刚体?

4

1 回答 1

4

结论

这真的是一个 101 Unity3D 问题。

在 SO 提出此类问题之前,请先查看 www.unity3d.com 上的优秀教程。有一个自己的刚体部分来处理这个问题。带有清晰的示例、视频教程和源代码(心,你还想要什么?)。


简短说明(编辑)

将您的模型拖到编辑器场景中。

在层次结构中选择具有模型名称的 GameObject。

单击Add Component并选择Ridigbody

选择 Ridigbody


更短的解释(代码)

只是这个简单的代码行:

myGameObject.AddComponent<Rigidbody>();


克隆对象

GameObjects在 a中实例化并向其中for-loop添加 an的示例Rigidbody

Rigidbody currentRb;
for(int i = 0; i < 10; i++)
{
    GameObject clone = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity);
    currentRb = clone.AddComponent<Rigidbody>();
    // You can even access the rigidbody with no effort
    currentRb.detectCollisions = true;
}

附加到 MonoBehavoir

您的 MonoBehavior 对象有一个名为 的属性RequireComponent()

文档中复制,此附件将为每个对象添加一个刚体组件。

// The GameObject requires a Rigidbody component
[RequireComponent (typeof (Rigidbody))]
public class PlayerScript : MonoBehaviour {
    Rigidbody rb;

    void Start() {
        rb = GetComponent<Rigidbody>();
    }
    void FixedUpdate()  {
        rb.AddForce(Vector3.up);
    }
}
于 2016-03-14T09:27:19.147 回答