Как сохранить постоянную скорость, когда объект движется с максимальной скоростью

Я работаю над проектом в Unity 2D для учебных целей. Это игра в пинг-понг. У меня есть материал, поэтому он движется быстрее каждый раз, когда он подпрыгивает. Единственная проблема с его материалом состоит в том, что его скорость выходит из-под контроля и глюки. Я хочу найти способ остановить это.

Например, я хотел бы знать, как удерживать мяч на постоянной скорости, когда он достигает максимальной скорости, например, 15f. Это Rigidbody2d коллайдерный мяч.

1 ответ

Решение

Как предлагается в этом посте, вы можете контролировать скорость вашего твердого тела, используя Vector2.ClampMagnitude метод отслеживания в вашем OnFixedUpdate(), Я предоставляю код в сообщении, которое я цитирую для вашего удобства. Я отредактировал код, указанный в цитируемом сообщении, чтобы он соответствовал последним изменениям в API:

float maxVelocity = 10;
 void FixedUpdate()
 {
 rigidbody2D.velocity = Vector2.ClampMagnitude(rigidbody2D.velocity, 
  maxVelocity);
 }
Другие вопросы по тегам