我在我的游戏中导入了一个游戏对象,它是在 3d 建模软件中创建的。现在我想控制那个游戏对象的运动,这样一旦它碰到另一个游戏对象就应该停止他的运动。
我已经读过,为此,游戏对象需要一个刚体。那么如何以及在脚本中的何处向该游戏对象添加刚体?
我在我的游戏中导入了一个游戏对象,它是在 3d 建模软件中创建的。现在我想控制那个游戏对象的运动,这样一旦它碰到另一个游戏对象就应该停止他的运动。
我已经读过,为此,游戏对象需要一个刚体。那么如何以及在脚本中的何处向该游戏对象添加刚体?
结论
这真的是一个 101 Unity3D 问题。
在 SO 提出此类问题之前,请先查看 www.unity3d.com 上的优秀教程。有一个自己的刚体部分来处理这个问题。带有清晰的示例、视频教程和源代码(心,你还想要什么?)。
简短说明(编辑)
将您的模型拖到编辑器场景中。
在层次结构中选择具有模型名称的 GameObject。
单击Add Component
并选择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);
}
}