如何取消 Unity 中对象的动量?

mre*_*all 1 c# unity-game-engine

我在 3D 平台游戏的关卡底部有一个杀戮区,但是当我的滚球重生时,transform.position我会保持动力。仓位被覆盖后如何取消所有动量?

我已经尝试环顾四周,但每个人似乎至少在 5 年前就问过这个问题,当我尝试更改rigidbody.velocityor时rigidbody.angularVelocity,它说“Component.rigidbody”已过时。

提前致谢!

der*_*ugo 5

看看文档:Rigidbody.velocity两者都不Rigidbody.angularVelocity是“过时的”......

从评论中我看到你实际上的意思Component.rigidbody是已经过时的 - >你必须GetComponent像任何其他组件一样使用它。

所以只需继续使用

var rigidbody = GetComponent<Rigidbody>();
// or in case you get it from another object or component
//var rigidbody = otherObjectOrComponent.GetComponent<Rigidbody>();

rigidbody.velocity = Vector3.zero;
rigidbody.angularVelocity = Vector3.zero;
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您还应该不通过组件设置位置Transform,而是使用Rigidbody.position