Unity3d 如何在Unity2D中以永久速度移动角色

Unity3d 如何在Unity2D中以永久速度移动角色,unity3d,game-physics,runner,Unity3d,Game Physics,Runner,我正在创建Unity2D runner,角色在其中奔跑。 我试着用右方向的力来迫使他以恒定的速度奔跑,但是这个动作是不稳定的 我试图以永久的速度达到无止境奔跑的效果。它在空气中很容易,但在地面上运行角色时工作方式不同(因为物理原因)。使用并注意: 如果出现以下情况,由于阻力的影响,速度也会逐渐衰减: 这是启用的 你可以加快速度,确保关闭重力。如果您在地面上跑步,请确保将其关闭 您可以实现自己的移动,在其中您可以根据时间更新位置。deltaTime 只需使用unity附带的内置角色控制器。基本方向

我正在创建Unity2D runner,角色在其中奔跑。 我试着用右方向的力来迫使他以恒定的速度奔跑,但是这个动作是不稳定的

我试图以永久的速度达到无止境奔跑的效果。它在空气中很容易,但在地面上运行角色时工作方式不同(因为物理原因)。

使用并注意:

如果出现以下情况,由于阻力的影响,速度也会逐渐衰减: 这是启用的

  • 你可以加快速度,确保关闭重力。如果您在地面上跑步,请确保将其关闭
  • 您可以实现自己的移动,在其中您可以根据时间更新位置。deltaTime
  • 只需使用unity附带的内置角色控制器。基本方向和跳跃。和鼠标控制角色面对的位置
  • 编辑:

  • 使用刚体速度并禁用“重力和阻力”。这将使你的跑步者永远保持跑步
  • 要自己实现这一点。可以在更新方法中更新对象的位置。差不多

    Vector3 temp = object.transform.position;
    temp.x = speed * Time.deltaTime;
    object.transform.position = temp;
    
    目标是你们的跑步者,速度是你们希望他移动的速度。 这将在update函数中

  • 如果你不打算控制跑步者,就不要麻烦控制器

  • 有了速度,我可以移动飞行的物体,但如果我把它们放在地面上(用刚体),我的速度衰减得太快(不到一秒钟)。即使线性阻力=0,你能告诉我更多关于3d点的信息吗?你是说输入类吗?在我的例子中,无论用户交互如何,我都在移动我的角色。它是一种跑步者,这就是我需要的。我将接受这种方法