Как перемещать персонажа с постоянной скоростью в Unity2D

Я создаю Unity2D Runner, где персонажи бегут по земле. Я пытаюсь заставить его бежать с постоянной скоростью, применяя силу с правильным вектором, но движение прерывистое.

Я пытаюсь добиться эффекта бесконечного бега с постоянной скоростью. Это легко в воздухе, но работает по-другому (из-за физики), когда персонаж бежит по земле.

2 ответа

Решение
  1. Вы можете ускорить и убедиться, что отключили гравитацию. Если вы бежите по земле, обязательно выключите его.
  2. Вы можете реализовать свое собственное движение, где вы можете обновить позицию в зависимости от Time.deltaTime.
  3. Просто используйте встроенный контроллер персонажа, который входит в единство. основные направления и прыжок. И мышь контролирует, где персонаж стоит.

РЕДАКТИРОВАТЬ:

  1. Используйте скорость твердого тела и отключите гравитацию и перетащите. Это заставит вашего бегуна работать вечно.
  2. Чтобы реализовать это самостоятельно. Вы можете обновить положение объекта в методе обновления. Что-то вроде

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

    Где объект, ты бегун, а скорость - как быстро ты хочешь, чтобы он двигался. Это было бы внутри функции обновления.

  3. Если вы не собираетесь контролировать бегуна, не беспокойтесь о контроллере

Используйте Rigidbody2D.velocity и обратите внимание на:

Скорость также может постепенно уменьшаться из-за эффекта сопротивления, если это включено.

Другие вопросы по тегам