需要一些有关Daydream的光线投射UI的帮助。由于只有gameObjects(立方体)的演示,我想知道我可以处理UI元素。 UI元素应该像往常一样反应,我的意思是突出显示等等。 How to use Graphic Raycaster with WorldSpace UI?中的帖子很有帮助,但完全没有。
我使用DrawRay来查看我的指针实际经过的位置并且效果很好。但是没有创建日志消息。
void Update()
{
Quaternion ori = GvrController.Orientation;
Vector3 vector = ori * Vector3.forward;
Debug.DrawRay(transform.position, vector * 100000, Color.green);
PointerEventData pointerData = new PointerEventData(null);
pointerData.position = vector;
Debug.Log(vector);
List<RaycastResult> results = new List<RaycastResult>();
EventSystem.current.RaycastAll(pointerData, results);
if (results.Count > 0)
{
Debug.Log(results[0]);
}
}
Canvas(World Space)和Button创建为useal且未修改。
感谢您的帮助!
答案 0 :(得分:0)
在你的情况下,我看到两个问题:
PointerEventData pointerData = new PointerEventData(EventSystem.current);
PointerEventData pointerData = new PointerEventData(null);
内容
PointerEventData.position
是 Vector2 ,而不是 Vector3 :您应该尝试pointerData.position = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f);
作为旁注,您可以使用graphicRaycaster.Raycast(pointerData, results);
graphicRaycaster 是公开的,并为其指定 GraphicRaycaster 组件 Canvas
答案 1 :(得分:0)
这个有用的方法怎么样:
Vector3 CurrentRaycastResultWorldPosition = GvrPointerInputModule.Pointer.CurrentRaycastResult.worldPosition;
答案 2 :(得分:-1)
根据您的问题光线投射世界空间用户界面,如果您使用谷歌卡片或白日梦,则应尝试将脚本gvrgraphicphysics raycaster附加到UI画布。