/// <inheritdoc /> public override void Update() { foreach (JointKinematicBody jointKinematicBody in jointKinematicBodies) { if (HandJointService.IsHandTracked(jointKinematicBody.HandednessType)) { jointKinematicBody.Joint = jointKinematicBody.Joint ?? HandJointService.RequestJointTransform(jointKinematicBody.JointType, jointKinematicBody.HandednessType); jointKinematicBody.UpdateState(jointKinematicBody.Joint != null); } else { jointKinematicBody.UpdateState(false); } } }
protected virtual void AttachToNewTrackedObject() { this.currentTrackedHandedness = Handedness.None; Transform target = null; if (TrackedTargetType == TrackedObjectType.Head) { target = CameraCache.Main.transform; } else if (TrackedTargetType == TrackedObjectType.MotionController) { if (this.TrackedHandness == Handedness.Both) { this.currentTrackedHandedness = Handedness.Left; target = GetMotionController(Handedness.Left); if (target == null) { this.currentTrackedHandedness = Handedness.Right; target = GetMotionController(Handedness.Right); if (target == null) { this.currentTrackedHandedness = Handedness.None; } } } else { this.currentTrackedHandedness = this.TrackedHandness; target = GetMotionController(this.TrackedHandness); } } else if (TrackedTargetType == TrackedObjectType.HandJoint) { if (HandJointService != null) { this.currentTrackedHandedness = this.TrackedHandness; if (currentTrackedHandedness == Handedness.Both) { if (HandJointService.IsHandTracked(Handedness.Left)) { currentTrackedHandedness = Handedness.Left; } else if (HandJointService.IsHandTracked(Handedness.Right)) { currentTrackedHandedness = Handedness.Right; } else { currentTrackedHandedness = Handedness.None; } } target = HandJointService.RequestJointTransform(this.TrackedHandJoint, currentTrackedHandedness); } } else if (TrackedTargetType == TrackedObjectType.CustomOverride) { target = this.transformOverride; } TrackTransform(target); }
/// <inheritdoc /> public override void Update() { using (UpdatePerfMarker.Auto()) { base.Update(); foreach (JointKinematicBody jointKinematicBody in jointKinematicBodies) { if (HandJointService.IsHandTracked(jointKinematicBody.HandednessType)) { jointKinematicBody.Joint = jointKinematicBody.Joint != null ? jointKinematicBody.Joint : HandJointService.RequestJointTransform(jointKinematicBody.JointType, jointKinematicBody.HandednessType); jointKinematicBody.UpdateState(jointKinematicBody.Joint != null); } else { jointKinematicBody.UpdateState(false); } } } }