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开发环境的搭建 unity安装 unity有中文...
前言 有时候我们希望公告牌跟随镜头旋转永远平行面向屏幕,同...
前言 经过一段时间的学习与实际开发,unity3D也勉强算是强行...
前言 在unity中我们常用的获取鼠标点击的方法有: 1、在3D场...
前言 在之前的例子中,我们都没有用到unity的精髓,例如地形...
这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...