Я работаю в единстве над какой-то рефлексной игрой проекта и создаю код, чтобы перемещать игрока при нажатой кнопке и продолжать двигаться вперед. Что мне нужно сделать, чтобы снизить скорость движения вперед, только когда я нажимаю кнопку, в этот момент, когда я нажимаю кнопку, скорость движения вперед продолжается вечно.
void FixedUpdate()
{
if ( moveLeft == true)
{
rb.AddForce(0, 0, forwardForce * Time.deltaTime);
}
else if (moveLeft == false)
{
rb.AddForce(0, 0, 0);
}
if (moveRight == true)
{
rb.AddForce(0, 0, forwardForce * Time.deltaTime);
}
else if (moveRight == false)
{
rb.AddForce(0, 0, 0);
}
}
public void RightMove()
{
playerController.transform.position += Vector3.right * 100f * Time.deltaTime;
moveRight = true;
}
public void LeftMove()
{
playerController.transform.position += Vector3.left * 100f * Time.deltaTime;
moveLeft = true;
}
@Ruzihm, я новичок в этом, и я не слишком много знаю, я все еще учусь быть своими 80%
Пожалуйста, редактировать свой вопрос и укажите код, в котором вы проверяете наличие Input
.
Вы хотите остановиться, когда отпустите кнопку? Установите rb.velocity на Vector3.zero
Да, я хочу остановиться, когда отпущу кнопку
В компоненте RigidBody установите для линейного сопротивления значение 1 или любое другое значение, которое вы хотите, и это будет медленно уменьшать скорость вашего твердого тела.
Вы исследовали, как работает трение в физическом движке Unity?