示例#1
0
        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);
            }
        }