2using UnityEngine.Events;
13 [Tooltip(
"If not set, relative to parent")]
15 private UnityAction<string, TrackedDevicePose_t, int> _onNewBoundPoseAction;
16 private UnityAction _onTrackerRolesChanged;
18 private void OnDeviceConnected(
int index,
bool connected)
26 private void OnNewBoundPose(
string binding, TrackedDevicePose_t pose,
int deviceIndex)
40 if (!pose.bDeviceIsConnected)
43 if (!pose.bPoseIsValid)
48 var rigidTransform =
new OVRT_Utils.RigidTransform(pose.mDeviceToAbsoluteTracking);
52 transform.position =
origin.transform.TransformPoint(rigidTransform.pos);
53 transform.rotation = origin.rotation * rigidTransform.rot;
57 transform.localPosition = rigidTransform.pos;
58 transform.localRotation = rigidTransform.rot;
62 private void OnTrackerRolesChanged()
70 _onNewBoundPoseAction += OnNewBoundPose;
72 _onTrackerRolesChanged += OnTrackerRolesChanged;
75 private void OnEnable()
77 OVRT_Events.NewBoundPose.AddListener(_onNewBoundPoseAction);
79 OVRT_Events.TrackerRolesChanged.AddListener(_onTrackerRolesChanged);
82 private void OnDisable()
84 OVRT_Events.NewBoundPose.RemoveListener(_onNewBoundPoseAction);
86 OVRT_Events.TrackerRolesChanged.RemoveListener(_onTrackerRolesChanged);
Maps tracked OpenVR poses to transform by serial number bindings. Can use tracker roles defined by St...
UnityAction< int, bool > _onDeviceConnectedAction
UnityEvent< int > onDeviceIndexChanged