123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- 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 : HeroAnimtionBasic
- {
- public AnimancerComponent AnimancerComponent;
- protected Map<string, TransitionAsset> _transitionMap = new Map<string, TransitionAsset>();
- protected override void ProInit()
- {
- AnimancerComponent = combatHeroEntity.GameObject.GetComponent<AnimancerComponent>();
- // AnimancerComponent.gameObject.OnAnimatorMove(OnAnimatorMove);
- 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 override HeroPlayStateInfoBasic 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;
- HeroAnimtionStateInfo heroPlayStateInfoBasic = new HeroAnimtionStateInfo();
- heroPlayStateInfoBasic.animancerState = animancerState;
- return heroPlayStateInfoBasic;
- }
- public void Dispose()
- {
- _transitionMap.Clear();
- AnimancerComponent = null;
- }
- }
- }
|