Машина едет не так, как хотелось бы
Машина в Юнити (3D под андроид) при управлении джойстиком двигается вперед хорошо, но назад - только в том случае, если скорость движения вперед уменьшается до 0, при отрицательных значениях снова начинает двигаться вперед. Менял upDownMove на отрицательное значение, не помогло, саму скорость минусовал - ещё хуже. В Гугле всё обшарил. Помогите, пожалуйста.
void Update()
{
upDownMove = joystick.Direction.y;
rightLeftMove = joystick.Direction.x;
transform.position += new Vector3((joystick.Direction.y * speed * Time.deltaTime), 0, -(joystick.Direction.x * speedRightLeft * Time.deltaTime));
if (upDownMove == 0)
{
transform.position += new Vector3((speed * Time.deltaTime), 0, -(joystick.Direction.x * speedRightLeft * Time.deltaTime));
}
if (upDownMove != 0)
{
speed += 0.1f * upDownMove;
if (speed >= maxSpeed)
{
speed = maxSpeed;
}
}
else
{
if (speed > 0)
{
speed -= 1f;
if (speed < 0)
{
speed = 0f;
}
}
else
{
speed += 1f;
if (speed > 0)
{
speed = 0f;
}
}
}
}
}
Ответы (1 шт):
Смотри. У тебя позиция машинки задаётся через transform - так лучше не делать. Разбей машинку на корпус и колёса. К корпусу колёса присоедени через WheelJoint Затем на корпус повесь скрипт, который будет управлять ими, в нём сделай два массива с колёсами(или четыре объекта - по каждому на колесо, но через массив удобнее) один из которых будет отвечать за рулевые колёса, а другой за задние колёса. Как реализовывать их вращение, почитай здесь - https://ru.stackoverflow.com/questions/936026/Правильная-реализация-передвижения-персонажа
В итоге получится вполне достоверная машина.