2using UnityEngine.Events;
15 Hmd = (int)OpenVR.k_unTrackedDeviceIndex_Hmd,
35 [Tooltip(
"If not set, relative to parent")]
37 private UnityAction<TrackedDevicePose_t[]> _onNewPosesAction;
39 private void OnDeviceConnected(
int index,
bool connected)
41 if ((
int)this.index ==
index)
50 private void OnNewPoses(TrackedDevicePose_t[] poses)
59 if (i < 0 || poses.Length <= i)
62 if (!poses[i].bDeviceIsConnected)
65 if (!poses[i].bPoseIsValid)
74 transform.position =
origin.transform.TransformPoint(pose.pos);
75 transform.rotation = origin.rotation * pose.rot;
79 transform.localPosition = pose.pos;
80 transform.localRotation = pose.rot;
86 _onNewPosesAction += OnNewPoses;
90 private void OnEnable()
95 OVRT_Events.NewPoses.AddListener(_onNewPosesAction);
99 private void OnDisable()
101 OVRT_Events.NewPoses.RemoveListener(_onNewPosesAction);
UnityAction< int, bool > _onDeviceConnectedAction
UnityEvent< int > onDeviceIndexChanged
Maps tracked OpenVR poses to transform by device index.