gpt4 book ai didi

c# - 应在 Start、Update 或 FixedUpdate 函数中对 Rigidbody 施加力

转载 作者:行者123 更新时间:2023-11-30 15:53:53 26 4
gpt4 key购买 nike

我是 Unity 新手。

我有 Rigidbody2D,我想为我的播放器添加常量 velocity。我想知道在 StartUpdate (或 FixedUpate )

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

最佳答案

I want to add constant velocity to my player.

Start函数在这种情况下被删除,因为它仅在脚本为 GameObject 且脚本已启用时被调用一次。如果您需要一遍又一遍地施加力,那么 Start函数不是您应该使用的东西。

Update函数用于每一帧做任何事情。例如,每帧手动移动对象。

FixedUpdate函数用于对 Rigidbody 做一些事情,这包括在每个固定帧向它添加力。这是您需要使用的,因为您正在对 Rigidbody 对象执行某些操作。

另一个你没有提到的是 LateUpdate功能。当您想让 GameObject 跟随相机时使用它,因为它是在调用所有 Update 函数之后调用的。


Unity 还有一个 ConstantForce用于简化向 Rigidbody 添加恒定力的实用程序。有了它,您可以在 Start 函数中向 ConstantForce 添加一次力,它将处理其余部分,直到您更改力。

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

关于c# - 应在 Start、Update 或 FixedUpdate 函数中对 Rigidbody 施加力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51634346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com