| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | using System;using System.Collections.Generic;using Animancer;using Animancer.TransitionLibraries;using Fort23.UTool;using UnityEngine;using Utility;namespace GameLogic.Combat.Hero{    public class CombatHeroAnimtion : IDisposable    {        public AnimancerComponent AnimancerComponent;        protected Map<string, TransitionAsset> _transitionMap = new Map<string, TransitionAsset>();        public void Init(AnimancerComponent animancer)        {            AnimancerComponent = animancer;            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;                    }                }            }        }        public void Play(string name, float speed = 1)        {            if (!_transitionMap.TryGetValue(name, out TransitionAsset clipTransition))            {                LogTool.Log("没有找到要播放的动画"+name);                return;            }            clipTransition.Speed = speed;            // clipTransition. = isLoop;            AnimancerComponent.Play(clipTransition);        }        public void Dispose()        {            _transitionMap.Clear();            AnimancerComponent = null;        }    }}
 |