на сцене. Так вот есть еще метод который возвращает true если touch произошёл над UI элементом. Если эту функцию закинуть в апдейт то она так грузит систему что на мобилке 10 фпс, поэтому я вызываю её на OnPointedDown. Так вот все бы ничего, только в апдейте на обьекте у меня висит скрипт которому тоже надо знать тапнул я на UI или по сцене, но вышеуказаный метод в апдейте я не могу вызывать потому что он ужастно грузит систему. Как мне определить в апдейте, тач над UI или по сцене?, либо вызывать этот метот в апдейте только один раз? Задумка такая есть юнит которому надо двигать ui прицел и он туда стреляет, но если ты стреляешь то вторым тапом получаеться надо задать Navmeshdestination, никак не могу допереть как это сделать и все время у меня то прицел навмешь тапом сбиваеться то навмешь дестинейшн по прицелу проходит
Интересно что у тебя там такое, что ФПС падает до 10. Но вообще просто пиши в свою переменную, что тач случился, а потм опрашивал эту переменную в аптейде трудного класса Ну это если ты на апдейте хочешь продолжить, а то можно и на событиях сделать
PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current); eventDataCurrentPosition.position = new Vector2(Input.GetTouch(touchIndex).position.x, Input.GetTouch(touchIndex).position.y); List<RaycastResult> results = new List<RaycastResult>(); EventSystem.current.RaycastAll(eventDataCurrentPosition, results); return results.Count > 0; если этот метод из апдейта вызывать то нагрузка на физику в профайлере 80%
Но ведь у евент системы есть свойство, в котором указан текущий объект Но с OnPointerTriger тоже норм рещение
в том то и дело что если тач не по UI элементу то OnPointerDown не срабатывает и не индентифицирует тач
Обсуждают сегодня