using System.Collections; using System.Collections.Generic; using UnityEngine; public class IdleState : StateBase { Animator m_Animator; int m_AnimHash; /// /// 在Idle状态时可以切换的state /// private List m_Triggers = new List(); public IdleState(Animator animator, int animation) : base() { m_Animator = animator; m_AnimHash = animation; } public override void OnEnter() { m_Animator.CrossFadeInFixedTime(m_AnimHash, 0.25f); foreach (var trigger in m_Triggers) { trigger.Reset(); } } public override void OnInit() { base.OnInit(); } public override void OnUpdate() { foreach(var trigger in m_Triggers) { if (trigger.Update() && trigger.Swallow) break; } base.OnUpdate(); } public void AddTrigger(Trigger trigger) { if (trigger == null || m_Triggers.Contains(trigger)) return; m_Triggers.Add(trigger); } }