bool GetVRPointerData(int controllerId, out VRPointerEventData data, bool create) { if (!pointerDataDictionary.TryGetValue(controllerId, out data) && create) { data = new VRPointerEventData(eventSystem) { pointerId = controllerId }; pointerDataDictionary.Add(controllerId, data); return(true); } return(false); }
private static void PointerDataPositionToDraggedObject(VRPointerEventData pointerData) { if (pointerData.pointerDrag != null) { var vrData = pointerData as VRPointerEventData; var plane = new Plane(vrData.pointerDrag.transform.forward, vrData.pointerDrag.transform.position); float distance; if (plane.Raycast(vrData.ray, out distance)) { var worldPos = vrData.ray.GetPoint(distance); pointerData.position = vrData.pressEventCamera.WorldToScreenPoint(worldPos); } } }