private AnimatorState GetDestinationState(int destinationState)
 {
     if (destinationState == -1)
     {
         return(null);
     }
     else if (destinationState >= 30000)
     {
         // Entry and Exit states
         int stateIndex = destinationState % 30000;
         if (stateIndex == 0 || stateIndex == 1)
         {
             // base layer node. Default value is valid
             return(null);
         }
         else
         {
             SelectorStateConstant selectorState = StateMachine.SelectorStateConstantArray[stateIndex].Instance;
             // HACK: take default Entry destination. TODO: child StateMachines
             SelectorTransitionConstant selectorTransition = selectorState.TransitionConstantArray[selectorState.TransitionConstantArray.Length - 1].Instance;
             return(GetDestinationState(selectorTransition.Destination));
         }
     }
     else
     {
         return(States[destinationState]);
     }
 }
예제 #2
0
 public AnimatorTransition(VirtualSerializedFile file, AnimatorController controller, SelectorTransitionConstant transition) :
     base(file, ClassIDType.AnimatorTransition, controller, transition)
 {
     file.AddAsset(this);
 }
예제 #3
0
 protected AnimatorTransitionBase(AssetInfo assetInfo, ClassIDType classID, AnimatorController controller, SelectorTransitionConstant transition) :
     this(assetInfo, classID, controller, transition.ConditionConstantArray)
 {
     IsExit = false;
 }
예제 #4
0
 public AnimatorTransition(VirtualSerializedFile file, AnimatorController controller, SelectorTransitionConstant transition,
                           IReadOnlyList <AnimatorState> states) :
     this(file, controller, transition)
 {
     DstState = PPtr <AnimatorState> .CreateVirtualPointer(states[transition.Destination]);
 }
 protected AnimatorTransitionBase(VirtualSerializedFile file, ClassIDType classID, AnimatorController controller, SelectorTransitionConstant transition) :
     this(file, classID, controller, transition.ConditionConstantArray)
 {
     Name   = string.Empty;
     IsExit = false;
 }
예제 #6
0
 private AnimatorTransition(AssetInfo assetInfo, AnimatorController controller, SelectorTransitionConstant transition) :
     base(assetInfo, ClassIDType.AnimatorTransition, controller, transition)
 {
 }
예제 #7
0
 public static AnimatorTransition CreateVirtualInstance(VirtualSerializedFile virtualFile, AnimatorController controller, SelectorTransitionConstant transition,
                                                        IReadOnlyList <AnimatorState> states)
 {
     return(virtualFile.CreateAsset((assetInfo) => new AnimatorTransition(assetInfo, controller, transition, states)));
 }
예제 #8
0
        private AnimatorTransition(AssetInfo assetInfo, AnimatorController controller, SelectorTransitionConstant transition, IReadOnlyList <AnimatorState> states) :
            this(assetInfo, controller, transition)
        {
            AnimatorState state = states[transition.Destination];

            DstState = state.File.CreatePPtr(state);
        }