Я не могу заставить своего персонажа двигаться вперед или назад, но влево и вправо работают отлично! Входы в проект в порядке, я не сделал ничего сумасшедшего с физикой твердого тела, я просто не могу понять проблему.
Часть кода, относящаяся к движению:
if (Input.GetAxis("Horizontal") > 0 || Input.GetAxis("Horizontal") < 0) {
gameObject.transform.GetComponent<Rigidbody>().MovePosition(gameObject.transform.position + (gameObject.transform.right * Input.GetAxis("Horizontal") * 10 * hSpeedMult * Time.deltaTime));
posAt = gameObject.transform.position;
}
else {
gameObject.transform.position = new Vector3(posAt.x, gameObject.transform.position.y, posAt.z);
}
if (Input.GetAxis("Vertical") > 0 || Input.GetAxis("Vertical") < 0) {
gameObject.transform.GetComponent<Rigidbody>().MovePosition(gameObject.transform.position + (gameObject.transform.forward * Input.GetAxis("Vertical") * 10 * vSpeedMult * Time.deltaTime));
posAt = gameObject.transform.position;
}
else {
gameObject.transform.position = new Vector3(posAt.x, gameObject.transform.position.y, posAt.z);
}
«posAt» просто используется, чтобы убедиться, что игрок не может двигаться, когда никакие элементы управления не нажаты.
ошибка движения