代码添加动画控制器
代码添加动画控制器
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);