@polyakovyevgeniy

Как бросить луч на пользовательский интерфейс в Unity3D?

Нужно реализовать возможность через бросание луча определять объект пользовательского интерфейса на котором кликнул пользовтатель. На обычне объекты сцены луч можно кинуть и он определяет на какой объект он попал. А как это можно сделать с пользовательским интерфейсом? Я знаю что есть обработчики, но нужно именно брасанием луча, так как логика единая для вычисления обьекта клика.
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);
eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
EventSystem.current.RaycastAll(eventDataCurrentPosition, raycastResults);

После этого в raycastResults будет то, куда попал рейкаст именно в UI. Ну и mousePosition заменяйте на что вам нужно - на тачи, например.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Для определения выделенного элемента интерфейса можете использовать EventSystem.currentSelectedGameObject.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы