private OculusQuestArticulatedHand createArticulatedHand(Handedness handedness) { var inputSystem = Service as IMixedRealityInputSystem; var pointers = RequestPointers(SupportedControllerType.ArticulatedHand, handedness); var inputSource = inputSystem?.RequestNewGenericInputSource($"Oculus Quest Hand Controller {handedness.ToString()}", pointers, InputSourceType.Hand); var hand = new OculusQuestArticulatedHand(TrackingState.NotTracked, handedness, inputSource); hand.SetupConfiguration(typeof(OculusQuestArticulatedHand), InputSourceType.Hand); for (int i = 0; i < hand.InputSource?.Pointers?.Length; i++) { hand.InputSource.Pointers[i].Controller = hand; } inputSystem.RaiseSourceDetected(hand.InputSource, hand); return(hand); }
public override void Update() { base.Update(); if (leftHand == null) { leftHand = createArticulatedHand(Handedness.Left); } leftHand?.UpdateController(); if (rightHand == null) { rightHand = createArticulatedHand(Handedness.Right); } rightHand?.UpdateController(); }