Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Unity Android C# Отслеживания нажатия

#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 нужно сделать мертвую зону, палец все-таки дрожит у всех.

Комментариев нет:

Отправить комментарий