Как перемещать персонажа с постоянной скоростью в Unity2D
Я создаю Unity2D Runner, где персонажи бегут по земле. Я пытаюсь заставить его бежать с постоянной скоростью, применяя силу с правильным вектором, но движение прерывистое.
Я пытаюсь добиться эффекта бесконечного бега с постоянной скоростью. Это легко в воздухе, но работает по-другому (из-за физики), когда персонаж бежит по земле.
2 ответа
Решение
- Вы можете ускорить и убедиться, что отключили гравитацию. Если вы бежите по земле, обязательно выключите его.
- Вы можете реализовать свое собственное движение, где вы можете обновить позицию в зависимости от Time.deltaTime.
- Просто используйте встроенный контроллер персонажа, который входит в единство. основные направления и прыжок. И мышь контролирует, где персонаж стоит.
РЕДАКТИРОВАТЬ:
- Используйте скорость твердого тела и отключите гравитацию и перетащите. Это заставит вашего бегуна работать вечно.
Чтобы реализовать это самостоятельно. Вы можете обновить положение объекта в методе обновления. Что-то вроде
Vector3 temp = object.transform.position; temp.x = speed * Time.deltaTime; object.transform.position = temp;
Где объект, ты бегун, а скорость - как быстро ты хочешь, чтобы он двигался. Это было бы внутри функции обновления.
- Если вы не собираетесь контролировать бегуна, не беспокойтесь о контроллере
Используйте Rigidbody2D.velocity и обратите внимание на:
Скорость также может постепенно уменьшаться из-за эффекта сопротивления, если это включено.