Files
plugin-library/Assets/Domain/Main/HotUpdate/kkController/fsm/KKIdleState.cs

68 lines
1.6 KiB
C#
Raw Normal View History

2025-05-23 18:26:47 +08:00
using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using Stary.Evo;
using UnityEngine;
namespace Main
{
/// <summary>
/// 待机状态
/// </summary>
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
}
}