Как получить координаты клика на rawImage в Unity с помощью Hololens?

Итак, сейчас у меня есть эта иерархия:CubeCanvasRawImage

И я хочу получить координаты моего клика по изображению, но я не знаю, с чего начать прямо сейчас.

  1. В HoloToolkit есть GazeManager, где выполняется raycast и имеется свойство HitPosition. Таким образом, используя GazeManager.Instance.HitPosition, я должен получить позицию клика в мире. Но как мне добраться от этого до координат на холсте?
  2. Я могу вызвать OnInputClicked (InputClickedEventData eventData), если я использую IInputClickHandler. Но из eventData я не получу информацию о клике.
  3. Я нашел это, но не могу передать это в мои потребности. Потому что его eventData имеет больше возможностей.
  4. Я предполагаю, что не будет разницы, чтобы получить щелчок от исходного изображения, или холста, или куба, потому что они имеют одинаковый размер.

1 ответ

Решение

Может быть, вам нужно изменить свой подход, я вижу некоторые решения для этого.

  1. Измени свой Canvas от Overlay в World Space а также Raycast щелчок, чтобы получить нормальную позицию, а не Canvas позиция.

  2. Если у вас есть Canvas в Overlay, Я думаю что Input.mousePosition прямо пропорционально RectTransform.positionИтак, есть ваша позиция.

Для обоих вы можете использовать IPointerClickHandler, чтобы обнаружить щелчок по любому элементу пользовательского интерфейса.

Другие вопросы по тегам