Невозможно переместить персонажа вперед / назад с помощью MovePosition - PullRequest
0 голосов
/ 02 августа 2020

Я не могу заставить своего персонажа двигаться вперед или назад, но влево и вправо работают отлично! Входы в проект в порядке, я не сделал ничего сумасшедшего с физикой твердого тела, я просто не могу понять проблему.

Часть кода, относящаяся к движению:

 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» просто используется, чтобы убедиться, что игрок не может двигаться, когда никакие элементы управления не нажаты.

visual studio code screenshot ошибка движения

1 Ответ

0 голосов
/ 02 августа 2020

Как только я удалил «морозильную камеру», это помогло. Мои строки "PosAt" были проблемой.

введите описание изображения здесь

...