@AsylkhanY

Почему выходит ошибка?

Touch touch = Input.GetTouch(0);
        if (touch.deltaPosition.x > 0f)
        {
            Debug.Log("right");
        }
        if (touch.deltaPosition.x < 0f)
        {
            Debug.Log("left");
        }


Выходит эта ошибка :
ArgumentException: Index out of bounds.
UnityEngine.Input.GetTouch (System.Int32 index) (at <2db13ba0d52343228aa9892c408fb49a>:0)
MoveManager.Update () (at Assets/Scripts/MoveManager.cs:16)
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега Unity
Кто хочет -ищет способ, кто не хочет -ищет причину
Команда Input.GetTouch(0) возвращает элемент массива (ведь это тач, а их может быть много одновременно) под номером "0" (тобишь самый первый элемент).

Ошибка говорит, что "номер элемента за границами", т.е, в массиве нет элемента с таким номером (даже одного, пустой массив).

Тоесть вам нужно перед тем как говорить "дай первый элемент массива" спросить, "а у тебя хоть есть элементы, один или больше?"...

Больше информации тут:
https://docs.unity3d.com/ScriptReference/Input.Get...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
17 янв. 2021, в 08:35
50000 руб./за проект
17 янв. 2021, в 01:26
100000 руб./за проект
16 янв. 2021, в 22:34
10000 руб./за проект