void Update()
        {
            if ((!VrCamera.activeInHierarchy || !LeftController.activeInHierarchy || !RightController.activeInHierarchy) && (Time.time - LastWarningTimestamp) >= 1)
            {
                LastWarningTimestamp = Time.time;
                Debug.LogWarning("One or more VR Peripherals not active in hierarchy!");
            }

            var previousOffsets = VRPeripheralOffsetsWriter.Data;
            var offsetsUpdate   = new VRPeripheralOffsets.Update();
            var newOffset       = new TransformOffset();

            if (LeftController.activeInHierarchy && ShouldUpdateOffset(LeftController.transform, previousOffsets.leftController, ref newOffset))
            {
                offsetsUpdate.SetLeftController(newOffset);
            }

            if (RightController.activeInHierarchy && ShouldUpdateOffset(RightController.transform, previousOffsets.rightController, ref newOffset))
            {
                offsetsUpdate.SetRightController(newOffset);
            }

            if (VrCamera.activeInHierarchy && ShouldUpdateOffset(VrCamera.transform, previousOffsets.head, ref newOffset))
            {
                offsetsUpdate.SetHead(newOffset);
            }

            VRPeripheralOffsetsWriter.Send(offsetsUpdate);
        }
Esempio n. 2
0
 void OnComponentUpdated(VRPeripheralOffsets.Update update)
 {
     if (update.head.HasValue)
     {
         SetVRPeripheralModelTransform(Head, update.head.Value);
     }
     if (update.leftController.HasValue)
     {
         SetVRPeripheralModelTransform(LeftHand, update.leftController.Value);
     }
     if (update.rightController.HasValue)
     {
         SetVRPeripheralModelTransform(RightHand, update.rightController.Value);
     }
 }