编程语言
首页 > 编程语言> > c#-应该在“开始”,“更新”或“固定更新”功能中对刚体施加力

c#-应该在“开始”,“更新”或“固定更新”功能中对刚体施加力

作者:互联网

我是Unity新手.

我有Rigidbody2D,我想给我的播放器增加恒定的速度.
我想知道在开始或更新(或FixedUpate)中将速度应用于Rigidbody2D时有什么区别或优点/缺点或野兽实践

当我在启动时应用速度时,一切正常,那么为什么我们每帧都增加速度(Update方法)?

解决方法:

I want to add constant velocity to my player.

在这种情况下,取消了Start函数,因为仅当脚本启用了GameObject并且启用了脚本时,才调用Start函数.如果您需要一遍又一遍地施加压力,则不应该使用Start功能.

Update函数用于每帧执行任何操作.例如,每帧手动移动对象.

FixedUpdate功能用于对刚体执行某些操作,这包括在每个固定框架上对其施加力.这是您要使用的,因为您要对Rigidbody对象进行操作.

您没有提到的另一个功能是LateUpdate功能.当您要使GameObject跟随摄像机时使用此方法,因为在调用所有Update函数之后才调用它.

Unity还具有ConstantForce实用程序,可简化向刚体添加恒定力的过程.有了它,您可以在“开始”功能中向ConstantForce添加一次力,它将处理其余部分,直到您更改力为止.

ConstantForce2D cForce = targetObj.GetComponent<ConstantForce2D>();
cForce.force = new Vector2(0, 100);

标签:unity3d,game-physics,c
来源: https://codeday.me/bug/20191108/2009623.html