您有大量的教程,以及有关应用速度,模拟跳跃的评论,它们都是矛盾的。例如,阅读youtube上的“用四行代码更好地实现统一跳跃”中的评论时,有人说您应该避免直接分配速度。
这就是我想要做的,(=仅使用AddForce()
),他们(Unity团队)添加了另一种强制模式,因此可用的选项如下:
public enum ForceMode
{
/// <summary>
/// <para>Add a continuous force to the rigidbody, using its mass.</para>
/// </summary>
Force = 0,
/// <summary>
/// <para>Add an instant force impulse to the rigidbody, using its mass.</para>
/// </summary>
Impulse = 1,
/// <summary>
/// <para>Add an instant velocity change to the rigidbody, ignoring its mass.</para>
/// </summary>
VelocityChange = 2,
/// <summary>
/// <para>Add a continuous acceleration to the rigidbody, ignoring its mass.</para>
/// </summary>
Acceleration = 5,
}
我要问的是不是基于 观点,而是: not 何时以及何时直接分配速度?
如果我没记错,似乎VelocityChange
可以代替直接分配速度。
是的,我已经RTFM,但我不理解他们的示例(它使用GUI.Button
,官方认为它已过时...)。
答案 0 :(得分:2)
这取决于您想要游戏的感受。如果直接分配速度,则可以非常严格地控制对象的运动方式,而如果使用力,则可以根据对象的质量获得更逼真的运动。
例如:如果您要制作节奏非常快的游戏,其中抽动输入很重要,那么您应该直接分配速度。
或者:例如,如果您制作的游戏是将球滚来滚去,并且想要用不同质量,不同质量的材料制成的球,那么您可能希望使用力量使运动变得可信。 / p>
此外,关于将AddForce
与VelocityChange
一起使用等效于直接分配速度是正确的。