Exemple #1
0
        public void Refresh()
        {
            //var eac = animator.runtimeAnimatorController as UnityEditor.Animations.AnimatorController;
            HashToName = new Dictionary <int, string>();
            Animas     = new Dictionary <string, YuoAnimaItem>();
            switch (animatorType)
            {
            case AnimatorType.Controller:
                foreach (var item in animatorController.layers[0].stateMachine.states)
                {
                    HashToName.Add(item.state.nameHash, item.state.name);
                    var anima = new YuoAnimaItem();
                    anima.AnimaName = item.state.name;
                    anima.Clip      = item.state.motion as AnimationClip;
                    Animas.Add(item.state.name, anima);
                }
                break;

            case AnimatorType.Override:
                var eac = animatorOverrideController.runtimeAnimatorController as UnityEditor.Animations.AnimatorController;
                foreach (var item in eac.layers[0].stateMachine.states)
                {
                    HashToName.Add(item.state.nameHash, item.state.name);
                    var anima = new YuoAnimaItem();
                    anima.AnimaName = item.state.name;
                    anima.Clip      = animatorOverrideController[item.state.motion as AnimationClip];
                    Animas.Add(item.state.name, anima);
                }
                break;

            default:
                break;
            }
        }
Exemple #2
0
 private void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (Animas.ContainsKey(HashToName[stateInfo.shortNameHash]))
     {
         NowAnima = Animas[HashToName[stateInfo.shortNameHash]];
         foreach (var item in NowAnima.Events)
         {
             item.num = 0;
             if (item.eventType == AnimaEventType.enter)
             {
                 item.num++;
                 item.action?.Invoke();
             }
         }
     }
     else
     {
         Debug.LogError($"{HashToName[stateInfo.shortNameHash]}  没有找到");
     }
     //print($"OnStateEnter  {HashToName[stateInfo.shortNameHash]}");
 }
Exemple #3
0
 public YuoTransition(Animator animator, YuoAnimaItem from, YuoAnimaItem to)
 {
     anima     = animator;
     this.from = from;
     this.to   = to;
 }