【问题标题】:How to move character with permanent speed in Unity2D如何在 Unity2D 中以永久速度移动角色
【发布时间】:2014-05-11 17:38:02
【问题描述】:

我正在创建 Unity2D 跑步者,其中角色在地面上奔跑。 我试图通过用正确的矢量施加力来强迫他以恒定的速度奔跑,但运动很不稳定。

我正在尝试以永久速度实现无尽奔跑的效果。它在空中很容易,但在角色在地面上奔跑时效果不同(由于物理原因)。

【问题讨论】:

    标签: unity3d game-physics runner


    【解决方案1】:
    1. 您可以加速并确保关闭重力。如果您在地面上跑步,请确保将其关闭。
    2. 您可以实现自己的移动,根据 Time.deltaTime 更新位置。
    3. 只需使用unity自带的内置角色控制器即可。基本方向和跳跃。鼠标控制角色的朝向。

    编辑:

    1. 使用刚体速度并关闭重力和阻力。这将使您的跑步者永远奔跑。
    2. 自己实现。您可以在 update 方法中更新对象的位置。类似的东西

      Vector3 temp = object.transform.position;
      temp.x = speed * Time.deltaTime;
      object.transform.position = temp;
      

      你的跑步者在哪里,速度是你希望他移动的速度。 这将在更新函数内部。

    3. 如果您不打算控制跑步者,请不要打扰控制器

    【讨论】:

    • 您能告诉我更多关于 3d 点的信息吗?你说的是输入类吗?就我而言,无论用户交互如何,我都会移动我的角色。这是一种跑步者。
    • 这就是我所需要的。我会用这种方法得到的
    【解决方案2】:

    使用Rigidbody2D.velocity并注意:

    如果阻力的影响,速度也会逐渐衰减,如果 这是启用的。

    【讨论】:

    • 用速度我可以移动飞行物体,但是我把它们放在地上(用刚体)我的速度衰减太快(不到一秒)。即使线性阻力 = 0。
    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多