Почему ошибки появляются, когда я использую MoveController.Move в Unity? - PullRequest
0 голосов
/ 02 апреля 2019

Я следовал учебному пособию на YouTube, чтобы сделать шутер от третьего лица в единстве. В какой-то момент в части движения он печатает MoveController.Move. Visual studio говорит мне, что такого понятия не существует. Мне было интересно, если это проблема с моим компьютером или просто нужна быстрая коррекция? Если да, подскажите, что поменять?

Я пытался изменить MoveControler на characterController, но это ничего не меняет.

void Update()
{
     Vector2 direction = new Vector2(playerInput.Vertical * speed, 
     playerInput.Horizontal * speed);
     MoveController.move(direction);
}

Я ожидаю, что он будет работать на единице, но ошибки не перестанут отображаться.

1 Ответ

0 голосов
/ 03 апреля 2019

Скорее всего, это отдельный скрипт.Вот способ, которым вы можете это исправить.

Убедитесь, что у вас есть «Контроллер персонажа», прикрепленный к вашему объекту игрока, из вашего скрипта (который должен быть присоединен к вашему игроку), продолжайте кэшировать контроллер и вызыватьметод, как вы сделали выше.Пример:

private CharacterController charController;
private Vector2 playerInput;

[SerializeField] private float speed;

/// <summary>
/// Start is called before the first frame update
/// </summary>
private void Start() {

    charController = GetComponent<CharacterController>();
}

/// <summary>
/// Update is called once per frame
/// </summary>
private void Update() {

    playerInput = new Vector2 (Input.GetAxisRaw("Vertical"), Input.GetAxisRaw("Horizontal"));

    charController.Move(playerInput * speed * Time.deltaTime);

}

Использование [SerializeField] позволит вам изменить значение из инспектора, не делая его общедоступным.Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...