using System.Collections; using System.Collections.Generic; using Cysharp.Threading.Tasks; using Stary.Evo; using UnityEngine; namespace Main { /// /// 待机状态 /// public class KKIdleState : AbstractFSMIState { private string aniName = "anim_ip_idle_loop"; private float idleTime = 0f; private KKIdleStateParam isVoice; public KKIdleState(IFsmSystem system) : base(system) { } public override UniTask OnEnterAsync() { return UniTask.CompletedTask; } public override UniTask OnEnterAsync(object param) { isVoice = (KKIdleStateParam)param; KKFsmSystem kkFsmSystem = FsmSystem as KKFsmSystem; if (kkFsmSystem.animator != null) { kkFsmSystem.animator.CrossFade(aniName, 0.2f, 0, 0f); } else { Debug.LogError("UnityEvo:KKFsmSystem: animator is null"); } return UniTask.CompletedTask; } public override void OnUpdate() { base.OnUpdate(); idleTime += Time.deltaTime; if (idleTime >= 10 && isVoice == KKIdleStateParam.IsVoice) { //播放过来语音 idleTime = 0; Debug.Log("KKIdleState::OnUpdate"); } } public override UniTask OnExitAsync() { return UniTask.CompletedTask; } } public enum KKIdleStateParam { IsVoice, NotVoice } }