c# - 方法“AddForce()”不适用于我的对象
问题描述
我试图对名为“简单香蕉”的物体施加力,但它不起作用。有我的代码:
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 上获取组件。
推荐阅读
- python - 如何组合嵌套列表和列表?
- javascript - 奇怪的 Nodejs 内存泄漏
- webdriver-io - webdriverIO 和 saucelab 集成不起作用
- python - 如何从 Python 中的列表中提取变化的文本?
- python - 如何从数据库中获取一个国家的城市列表?
- asp.net - 在 asp.net 框架 Web 应用程序中上传图像文件
- powershell - 从 Powershell ISE 和 Windows 资源管理器运行脚本的不同行为
- javascript - 关于 Discord 中的嵌入 (JAVASCRIPT)
- css - Buey Modal 滚动条出现在两个轴上,我只想要 y 轴滚动条
- registry - 两个问题 - 我正在尝试修改注册表,但出现错误