示例#1
0
 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);
 }
示例#2
0
        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);
                }
            }
        }