Как получить координаты клика на rawImage в Unity с помощью Hololens?
Итак, сейчас у меня есть эта иерархия:Cube → Canvas → RawImage
И я хочу получить координаты моего клика по изображению, но я не знаю, с чего начать прямо сейчас.
- В HoloToolkit есть GazeManager, где выполняется raycast и имеется свойство HitPosition. Таким образом, используя GazeManager.Instance.HitPosition, я должен получить позицию клика в мире. Но как мне добраться от этого до координат на холсте?
- Я могу вызвать OnInputClicked (InputClickedEventData eventData), если я использую IInputClickHandler. Но из eventData я не получу информацию о клике.
- Я нашел это, но не могу передать это в мои потребности. Потому что его eventData имеет больше возможностей.
- Я предполагаю, что не будет разницы, чтобы получить щелчок от исходного изображения, или холста, или куба, потому что они имеют одинаковый размер.
1 ответ
Решение
Может быть, вам нужно изменить свой подход, я вижу некоторые решения для этого.
Измени свой
Canvas
отOverlay
вWorld Space
а такжеRaycast
щелчок, чтобы получить нормальную позицию, а неCanvas
позиция.Если у вас есть
Canvas
вOverlay
, Я думаю чтоInput.mousePosition
прямо пропорциональноRectTransform.position
Итак, есть ваша позиция.
Для обоих вы можете использовать IPointerClickHandler, чтобы обнаружить щелчок по любому элементу пользовательского интерфейса.