Вероятно, я совсем поехал на ночь глядя, но я не понимаю, как работает эта индексация прикосновений.
Внизу привожу код. Он очень простенький.
Попробуйте проделать следующее: при запуске приложите один палец. В ответ получите в консоли "0", ну и ошибку, чего следует ожидать, ибо никакого объекта на индексе 1 нет, так как приложили только один палец.
Приложите второй палец, не отрывая первый. Далее первый палец оторвите и снова коснитесь им экрана.
В консоли будет "0" и "1", так как уже два пальца. Какой вывод делаем? Когда мы прикладываем второй палец и поднимаем первый, то второй палец не получает индекс 0, а остается при 1, а первый палец при новом прикладывании получает, видимо, свой изначальный индекс 0. Вроде бы.
Теперь приложите один палец и подвигайте, будете получать в консоли индекс "0" и ошибку, следует ожидать. Приложите второй палец, не отрывая первый и подвигайте первым. Теперь "0" и "1". Ибо два пальца.
Поворотный момент. Оторвите первый палец, не отпуская второй и подвигайте вторым (напоминаю, что второй при отрыве первого не получает индекс 0), но тут вы увидите в консоли "0" и ошибку. То есть 0 индекс присвоен прикосновению, а 1 индекс отсутствует, хотя выше мы убедились, что все как раз наоборот. Я недавно работаю с юнити и, может, каких секретов не знаю, но это очень странно и бесит.
Как-то тоже пытался разобраться в этой теме
Пальцам присваиваются индексы по возрастанию. При отрывании одного пальца его индекс освобождается и его займет следующий прикоснувшийся палец.
Например есть нажать тремя пальцами, то индексы будут 0, 1, 2. При отрыве пальца с индексом 1 и возвращении его на экран он опять получит первый свободный индекс - 1 (0 и 2 были заняты).
Если оторвать пальцы с индексами 0 и 1, а потом вернуть только один палец, то индексы будут 0 и 2. И т.д.
Если пять пальцев 0, 1, 2, 3, 4 - то при отрыве 0, 1 и 3 и возвращении одного пальца индексы будут 0, 2 и 4