public TrackingPoint ApplyPoint(string name, ETrackedDeviceClass deviceClass, Vector3 position, Quaternion rotation, bool isOK)
        {
            //ignore "LIV Virtual Camera"

            if (AllTrackingPoints.TryGetValue(name, out var trackingPoint) == false)
            {
                trackingPoint = new TrackingPoint(name, deviceClass);
                var targetGameObject = new GameObject(name);
                trackingPoint.TrackingWatcher = targetGameObject.AddComponent <TrackingWatcher>();
                trackingPoint.TargetTransform = targetGameObject.transform;
                trackingPoint.TargetTransform.SetParent(transform, false);

                AllTrackingPoints[name] = trackingPoint;
                if (deviceClass == ETrackedDeviceClass.HMD)
                {
                    HmdTrackingPoints[name] = trackingPoint;
                }
                else if (deviceClass == ETrackedDeviceClass.Controller)
                {
                    ControllerTrackingPoints[name] = trackingPoint;
                }
                else if (deviceClass == ETrackedDeviceClass.GenericTracker)
                {
                    TrackerTrackingPoints[name] = trackingPoint;
                }
            }

            if (trackingPoint.SetPositionAndRotationLocal(position, rotation))
            {
                TrackerMovedEvent?.Invoke(this, name);
            }
            trackingPoint.TrackingWatcher.IsOK(isOK);

            return(trackingPoint);
        }
Exemple #2
0
 private static void CheckPosition(DeviceInfo device)
 {
     if (lastPositions.ContainsKey(device.serialNumber) == false)
     {
         lastPositions.Add(device.serialNumber, device.transform.pos);
     }
     else
     {
         if (Vector3.Distance(lastPositions[device.serialNumber], device.transform.pos) > 0.1f)
         {
             TrackerMovedEvent?.Invoke(null, device.serialNumber);
             lastPositions[device.serialNumber] = device.transform.pos;
         }
     }
 }
Exemple #3
0
 private static void CheckPosition(string serial, Vector3 pos)
 {
     if (lastPositions.ContainsKey(serial) == false)
     {
         lastPositions.Add(serial, pos);
     }
     else
     {
         if (Vector3.Distance(lastPositions[serial], pos) > 0.1f)
         {
             TrackerMovedEvent?.Invoke(null, serial);
             lastPositions[serial] = pos;
         }
     }
 }