方法“AddForce()”无法处理我的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方法“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上获取组件。

以上是关于方法“AddForce()”无法处理我的对象的主要内容,如果未能解决你的问题,请参考以下文章

IOC 控制反转Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )(代码片

Unity:3D 运动/碰撞检测失败(AddForce、MovePosition、transform.localPosition)

AddForce();AddRelativeForce();FixedUpdate()

代码片--写一个异常

自上而下的太空飞行物理 - AddForce - 物体越快越远离中心

Unity3D游戏开发初探