你有大量的教程,以及关于应用速度、模拟跳跃的评论,它们都是矛盾的。例如,在 youtube 上阅读“Better Jumping in Unity With Four Lines of Code”中的评论时,有人说您应该避免直接分配速度。
这就是我想要做的,(= 仅使用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,
}
Run Code Online (Sandbox Code Playgroud)
我问的不是基于意见,而是:何时以及何时不直接分配速度?
如果我没记错的话,这似乎VelocityChange可以替代直接分配速度。
是的,我有RTFM,但我不明白他们的样本(它使用的样本GUI.Button被官方认为是过时的......)。
这完全取决于您想要游戏的感觉。如果直接指定速度,则可以非常严格地控制对象的移动方式,而如果使用力,则可以根据对象的质量获得更真实的移动。
例如:如果您正在制作一款节奏非常快的游戏,其中抽搐输入很重要,那么您可能应该直接分配速度。
或者:例如,如果您正在制作一款滚动球的游戏,并且希望球由具有不同质量的不同材料制成,那么您可能会希望使用力来使运动可信。
另外,您对使用AddForcewithVelocityChange相当于直接分配速度的看法是正确的。
| 归档时间: |
|
| 查看次数: |
3322 次 |
| 最近记录: |