68 lines
1.6 KiB
C#
68 lines
1.6 KiB
C#
|
|
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
|
||
|
|
}
|
||
|
|
}
|