#android #c_sharp #unity3d
Нужно чтобы при нажатии на экран(в любой точке) выполнялась функцияА один раз, пока не нажмешь снова(то есть как в флепибёрд), у меня же при прикосновение на экран он выполняется пока не отпустишь палец.Использовал Input.touchCount>0
Ответы
Ответ 1
Очевидно, что отслеживать лишь то, что имеет место нажатие - недостаточно. Надо еще отслеживать фазу. TouchPhase - список возможных фаз Began - Палец коснулся экрана. Moved - Палец передвинулся по экрану. Stationary - Палец коснулся экрана, но не сдвинулся. Ended - Палец только что оторван от экрана. Это последняя фаза нажатий. Canceled - Система отменила отслеживание касаний. Пример там можно подглядеть: https://docs.unity3d.com/ru/current/ScriptReference/Touch-phase.html И в итоге написать что-то типа: void Update() { if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); if (touch.phase == TouchPhase.Began) { // что-то делать } } }Ответ 2
Первый вариант описан выше, использовать фазу Began. Я в подобном проекте использовал условие if (Input.GetMouseButtonDown(0)). Прекрасно работало и на android девайсах.Ответ 3
Я не делал игры под Android и сенсооные экраны в принципе, но думаю, под Stationary нужно сделать мертвую зону, палец все-таки дрожит у всех.
Комментариев нет:
Отправить комментарий