直接分配速度与AddForce()

时间:2018-10-28 18:40:49

标签: unity3d

您有大量的教程,以及有关应用速度,模拟跳跃的评论,它们都是矛盾的。例如,阅读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,官方认为它已过时...)。

1 个答案:

答案 0 :(得分:2)

这取决于您想要游戏的感受。如果直接分配速度,则可以非常严格地控制对象的运动方式,而如果使用力,则可以根据对象的质量获得更逼真的运动。

例如:如果您要制作节奏非常快的游戏,其中抽动输入很重要,那么您应该直接分配速度。

或者:例如,如果您制作的游戏是将球滚来滚去,并且想要用不同质量,不同质量的材料制成的球,那么您可能希望使用力量使运动变得可信。 / p>

此外,关于将AddForceVelocityChange一起使用等效于直接分配速度是正确的。