| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- using System;
 
- using System.Collections.Generic;
 
- using Animancer;
 
- using Animancer.TransitionLibraries;
 
- using Core.Triiger;
 
- using Fort23.UTool;
 
- using UnityEngine;
 
- using UnityEngine.AI;
 
- using Utility;
 
- namespace GameLogic.Combat.Hero
 
- {
 
-     public class CombatHeroAnimtion : IDisposable
 
-     {
 
-         public AnimancerComponent AnimancerComponent;
 
-         protected Map<string, TransitionAsset> _transitionMap = new Map<string, TransitionAsset>();
 
-         private CombatHeroEntity combatHeroEntity;
 
-         public void Init(AnimancerComponent animancer, CombatHeroEntity combatHeroEntity)
 
-         {
 
-             AnimancerComponent = animancer;
 
-             AnimancerComponent.gameObject.OnAnimatorMove(OnAnimatorMove);
 
-             this.combatHeroEntity = combatHeroEntity;
 
-             if (AnimancerComponent != null)
 
-             {
 
-                 // AnimancerComponent.GetAnimationClips();
 
-                 // List<AnimationClip> results = new List<AnimationClip>();
 
-                 // AnimancerComponent.Transitions.GetAnimationClips(results);
 
-                 int max = AnimancerComponent.Transitions.Library.Count;
 
-                 for (int i = 0; i < max; i++)
 
-                 {
 
-                     if (AnimancerComponent.Transitions.Library.TryGetTransition(i,
 
-                             out TransitionModifierGroup transition))
 
-                     {
 
-                         TransitionAsset clipTransition2 = transition.Transition as TransitionAsset;
 
-                         _transitionMap[clipTransition2.name] = clipTransition2;
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         protected void OnAnimatorMove()
 
-         {
 
-             if (AnimancerComponent == null || AnimancerComponent.Animator.velocity.sqrMagnitude < .01f)
 
-             {
 
-                 return;
 
-             }
 
-             bool isOk = false;
 
-    
 
-             combatHeroEntity.CombatAIBasic.NavMeshAgent.Raycast(AnimancerComponent.Animator.rootPosition,
 
-                 out NavMeshHit hit);
 
-             if (!hit.hit)
 
-             {
 
-                 combatHeroEntity.combatHeroGameObject.SetPosition(AnimancerComponent.Animator.rootPosition);
 
-             }
 
-         }
 
-         public AnimancerState Play(string name, float speed = 1)
 
-         {
 
-             if (!_transitionMap.TryGetValue(name, out TransitionAsset clipTransition))
 
-             {
 
-                 LogTool.Log("没有找到要播放的动画" + name);
 
-                 return null;
 
-             }
 
-             // clipTransition.Speed = speed;
 
-             // clipTransition. = isLoop;
 
-            
 
-             AnimancerState animancerState = AnimancerComponent.Play(clipTransition);
 
-             // AnimancerComponent.Animator.speed = speed;
 
-             animancerState.Speed = speed;
 
-             return animancerState;
 
-         }
 
-         public void Dispose()
 
-         {
 
-             _transitionMap.Clear();
 
-             AnimancerComponent = null;
 
-         }
 
-     }
 
- }
 
 
  |