Unity3d 直接指定速度vs AddForce()

Unity3d 直接指定速度vs AddForce(),unity3d,Unity3d,你有大量的教程和关于应用速度、模拟跳跃的评论,它们都是相互矛盾的。例如,在youtube上阅读“四行代码更好地统一跳跃”中的评论时,有人说应该避免直接指定速度 这就是我要做的,(=仅使用AddForce())他们(Unity团队)添加了另一种强制模式,因此以下是可用的选项: public enum ForceMode { /// <summary> /// <para>Add a continuous force to the rigidbody, u

你有大量的教程和关于应用速度、模拟跳跃的评论,它们都是相互矛盾的。例如,在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,
}
公共枚举模式
{
/// 
///使用刚体的质量向刚体添加连续力。
/// 
力=0,
/// 
///使用刚体的质量向刚体添加瞬时力脉冲。
/// 
脉冲=1,
/// 
///向刚体添加瞬时速度更改,忽略其质量。
/// 
速度变化=2,
/// 
///将连续加速度添加到刚体,忽略其质量。
/// 
加速度=5,
}
我要问的不是基于意见的,而是:何时,何时,不直接分配速度

如果我没弄错的话,似乎
VelocityChange
是直接分配速度的替代品


是的,我曾经也不理解他们的示例(它使用了官方认为过时的
GUI.Button

这取决于你希望游戏的感觉。如果直接指定速度,则可以非常严格地控制对象的移动方式,而如果使用力,则可以根据对象的质量获得更真实的移动

例如:如果你正在制作一个非常快节奏的游戏,其中twitch输入非常重要,你可能应该直接指定速度

或者:例如,如果你在做一个游戏,在游戏中你滚动一个球,你想让球由不同的材料和不同的质量制成,你可能会想使用力来让动作可信


另外,关于如何将
AddForce
VelocityChange
一起使用等同于直接指定速度,您是对的。

您的问题是什么?(它通常以
结尾)@Draco18s“何时和何时不直接指定速度”?有时您希望不同质量的对象对玩家“感觉”不同。那是你应该使用武力的时候。有时候你不在乎质量,只想让它以一定的速度运动。这时你应该使用速度。人们说要避免设置速度,因为当你的部分代码忽略了对象的质量,因为它们直接设置了速度时,很难获得弹簧常数、质量、摩擦常数和其他物理属性的正确性。@你可能会(复制所有注释)+(将它们粘贴到答案中)。这对我来说应该足够了。我的另一个(隐藏的)问题是:从长远来看,它是可持续的吗?(尽管在联合队的长期训练从来不会超过3个月(笑话)),我真的没有想到我所说的是一个答案。尽管我很乐意建议滥用物理学。我听到了关于团结和矛盾的笑话。我愿意。我知道,我的天啊,我知道。