如何使用 Hololens 在 Unity 中获取点击 rawImage 的坐标?
How to get coordinates of click on rawImage in Unity using Hololens?
所以现在我有一个层次结构:
立方体 → Canvas → RawImage
我想获取我在原始图像上点击的坐标,但我现在不知道从哪里开始。
- 在HoloToolkit中有一个GazeManager,其中进行光线投射,并且有属性 HitPosition。所以通过使用 GazeManager.Instance.HitPosition 我应该得到世界上的点击位置。但是我如何从这里得到 Canvas 上的坐标呢?
- 如果我使用 IInputClickHandler,我可以触发 OnInputClicked(InputClickedEventData eventData)。但是从 eventData 我不会得到关于点击的信息。
- 我找到了 this 但无法将其转换为我的需要。因为他的eventData有更多的选择。
- 我想从原始图像、canvas 或立方体获得点击不会有什么不同,因为它们的大小都相同。
也许你需要的是改变你的方法,我可以看到一些解决方案。
将您的 Canvas
从 Overlay
更改为 World Space
和 Raycast
点击以获得正常位置,而不是 Canvas
位置.
如果你在Overlay
中有Canvas
,我认为Input.mousePosition
与RectTransform.position
成正比,所以有你的位置。
对于两者,您可以使用 IPointerClickHandler 来检测对任何 UI 元素的点击。
所以现在我有一个层次结构: 立方体 → Canvas → RawImage
我想获取我在原始图像上点击的坐标,但我现在不知道从哪里开始。
- 在HoloToolkit中有一个GazeManager,其中进行光线投射,并且有属性 HitPosition。所以通过使用 GazeManager.Instance.HitPosition 我应该得到世界上的点击位置。但是我如何从这里得到 Canvas 上的坐标呢?
- 如果我使用 IInputClickHandler,我可以触发 OnInputClicked(InputClickedEventData eventData)。但是从 eventData 我不会得到关于点击的信息。
- 我找到了 this 但无法将其转换为我的需要。因为他的eventData有更多的选择。
- 我想从原始图像、canvas 或立方体获得点击不会有什么不同,因为它们的大小都相同。
也许你需要的是改变你的方法,我可以看到一些解决方案。
将您的
Canvas
从Overlay
更改为World Space
和Raycast
点击以获得正常位置,而不是Canvas
位置.如果你在
Overlay
中有Canvas
,我认为Input.mousePosition
与RectTransform.position
成正比,所以有你的位置。
对于两者,您可以使用 IPointerClickHandler 来检测对任何 UI 元素的点击。