方法 "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 上获取组件。
我试图对名为 '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 上获取组件。