Ошибка при нажатии?

Пробую новые для себя варианты управлять объектом с помощью мышки. !!! - Пометил место с ошибкой. Есть вот такой код

if (Input.touchCount > 0)
        {

      !!!      Swipe();

        }

    }
    private void Swipe()
    {

    !!!    Vector2 delta = Input.GetTouch(0).deltaPosition;
        if (Mathf.Abs(delta.x) > Mathf.Abs(delta.y))
        {
            Vector3 position = transform.position;
            position.x += 1.5f * delta.x;
            transform.position = position;

        }

Сама ошибка: ArgumentException: Index out of bounds. UnityEngine.Input.GetTouch (System.Int32 index) (at <2db13ba0d52343228aa9892c408fb49a>:0) PlayerControl.Swipe () (at Assets/Scripts/PlayerControl.cs:60) PlayerControl.FixedUpdate () (at Assets/Scripts/PlayerControl.cs:52)


Ответы (1 шт):

Автор решения: Максим Фисман

Судя по ошибке, у вас оператор if и всё, что в нем находится в методе FixedUpdate(). Этот метод вызывается каждый кадр. А в функции Swipe() вы вот этой строкой: Input.GetTouch(0) пытаетесь получить касание пользователя на экран. Но ведь пользователь не касается экрана каждый кадр. В итоге получается, что в определенный кадр нажатия на экран не было, а вы пытаетесь получить его (GetTouch).

Если что-то не так, то выложите, пожалуйста, если не весь код, то хотя бы функцию, в которой находится Input.GetTouch(0), но судя по тексту ошибки это находится в FixedUpdate()

→ Ссылка