Скорее всего, это отдельный скрипт.Вот способ, которым вы можете это исправить.
Убедитесь, что у вас есть «Контроллер персонажа», прикрепленный к вашему объекту игрока, из вашего скрипта (который должен быть присоединен к вашему игроку), продолжайте кэшировать контроллер и вызыватьметод, как вы сделали выше.Пример:
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] позволит вам изменить значение из инспектора, не делая его общедоступным.Надеюсь, это поможет!