private AnimatorState CreateBlinkingState(AnimatorStateMachine machine, VRC_AnimatorTrackingControl.TrackingType type, AnimationClip emptyClip) { var enableBlinking = machine.AddState(type == VRC_AnimatorTrackingControl.TrackingType.Tracking ? "EnableBlinking" : "DisableBlinking", SharedLayerUtils.GridPosition(type == VRC_AnimatorTrackingControl.TrackingType.Tracking ? 0 : 2, 3)); enableBlinking.motion = emptyClip; enableBlinking.writeDefaultValues = _writeDefaultsForLogicalStates; var tracking = enableBlinking.AddStateMachineBehaviour <VRCAnimatorTrackingControl>(); tracking.trackingEyes = type; return(enableBlinking); }
private void SettingElementTo(TrackingElement element, VRC_AnimatorTrackingControl.TrackingType target) { switch (element) { case TrackingElement.Head: _tracking.trackingHead = target; break; case TrackingElement.LeftHand: _tracking.trackingLeftHand = target; break; case TrackingElement.RightHand: _tracking.trackingRightHand = target; break; case TrackingElement.Hip: _tracking.trackingHip = target; break; case TrackingElement.LeftFoot: _tracking.trackingLeftFoot = target; break; case TrackingElement.RightFoot: _tracking.trackingRightFoot = target; break; case TrackingElement.LeftFingers: _tracking.trackingLeftFingers = target; break; case TrackingElement.RightFingers: _tracking.trackingRightFingers = target; break; case TrackingElement.Eyes: _tracking.trackingEyes = target; break; case TrackingElement.Mouth: _tracking.trackingMouth = target; break; default: throw new ArgumentOutOfRangeException(nameof(element), element, null); } }