代碼添加動畫控制器動畫
1 // Creates the controller 2 var controller = UnityEditor.Animations.AnimatorController.CreateAnimatorControllerAtPath ("Assets/Mecanim/StateMachineTransitions.controller"); 3 4 // Add parameters 5 controller.AddParameter(「TransitionNow」, UnityEditor.Animations.AnimatorControllerParameterType.Trigger); 6 controller.AddParameter(「Reset」, UnityEditor.Animations.AnimatorControllerParameterType.Trigger); 7 controller.AddParameter(「GotoB1″, UnityEditor.Animations.AnimatorControllerParameterType.Trigger); 8 controller.AddParameter(「GotoC」, UnityEditor.Animations.AnimatorControllerParameterType.Trigger); 9 10 // Add StateMachines 11 var rootStateMachine = controller.layers[0].stateMachine; 12 var stateMachineA = rootStateMachine.AddStateMachine(「smA」); 13 var stateMachineB = rootStateMachine.AddStateMachine(「smB」); 14 var stateMachineC = stateMachineB.AddStateMachine(「smC」); 15 16 // Add States 17 var stateA1 = stateMachineA.AddState(「stateA1″); 18 var stateB1 = stateMachineB.AddState(「stateB1″); 19 var stateB2 = stateMachineB.AddState(「stateB2″); 20 stateMachineC.AddState(「stateC1″); 21 var stateC2 = stateMachineC.AddState(「stateC2″); // don’t add an entry transition, should entry to state by default 22 23 // Add Transitions 24 var exitTransition = stateA1.AddExitTransition(); 25 exitTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, 「TransitionNow」); 26 exitTransition.duration = 0; 27 28 var resetTransition = stateMachineA.AddAnyStateTransition(stateA1); 29 resetTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, 「Reset」); 30 resetTransition.duration = 0; 31 32 var transitionB1 = stateMachineB.AddEntryTransition(stateB1); 33 transitionB1.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, 「GotoB1″); 34 stateMachineB.AddEntryTransition(stateB2); 35 stateMachineC.defaultState = stateC2; 36 var exitTransitionC2 = stateC2.AddExitTransition(); 37 exitTransitionC2.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, 「TransitionNow」); 38 exitTransitionC2.duration = 0; 39 40 var stateMachineTransition = rootStateMachine.AddStateMachineTransition(stateMachineA, stateMachineC); 41 stateMachineTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, 「GotoC」); 42 rootStateMachine.AddStateMachineTransition(stateMachineA, stateMachineB);