方法 "AddForce()" 不适用于我的对象

Method "AddForce()" isn't working on my object

我试图对名为 'simple banana' 的对象施加力,但它不起作用。这是我的代码:

simpleBanana.GetComponent<Rigidbody>().AddForce(Vector3.back * 10000f, ForceMode.Impulse);

插入"Debug.Log (" ...");"在下一行工作。物体质量为1,物体不运动

首先也是最重要的:这样你获得刚体会导致性能低下。 GetComponent 是一个非常昂贵的方法,永远不要在 Update 上执行,在 void Setup 中执行,将其保存到 RigidBody 类型的对象中,如 API 参考:

https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html

第二个: 我觉得可以作为一个参考问题。 我刚开始的时候遇到了很多麻烦。 确保 simpleBanana 是包含 RigidBody 的对象。 如果您对该 RigidBody 的引用不是拖放它,请务必在应用 GetComponent 之前导航到 simpleBanana。

如果您的脚本在 simplePotato 上,并且您尝试访问 simpleBanana,请执行以下操作:

RigidBody simpleBanana = GameObject.Find('simpleBanana').GetComponent<RigidBody>();

或者如果 simpleBanana 是 simplePotato 的子代:

RigidBody simpleBanana = this.transform.GetChild(index_of_the_child).GetComponent<RigidBody>();

引用正确后,可以任意加力

但请记住仅在 void Setup 上获取组件。