Files
plugin-library/Assets/Main/Script/Runtime/kkController/fsm/KKHintState.cs
2025-05-23 18:26:47 +08:00

67 lines
1.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using Stary.Evo;
using UnityEngine;
using YooAsset;
namespace Main
{
/// <summary>
/// 反馈手势状态
/// </summary>
public class KKHintState : AbstractFSMIState
{
private string aniContinueName = "anim_ip_hint_continue";
private string aniNotyetName = "anim_ip_hint_notyet";
public KKHintState(IFsmSystem system) : base(system)
{
}
public override UniTask OnEnterAsync()
{
return UniTask.CompletedTask;
}
public override async UniTask OnEnterAsync(object param)
{
KKFsmSystem kkFsmSystem = FsmSystem as KKFsmSystem;
if (kkFsmSystem.animator != null)
{
bool isContinue = (bool)param;
if (isContinue)
{
kkFsmSystem.animator.CrossFade(aniContinueName, 0.2f,0,0);
}
else
{
kkFsmSystem.animator.CrossFade(aniNotyetName,0.2f, 0, 0f);
}
float animProgress = 0;
while (animProgress <= 0.99f)
{
Debug.Log(animProgress);
animProgress=kkFsmSystem.GetAnimationProgress(0);
await UniTask.Yield();
}
FsmSystem.SetCurState(nameof(KKIdleState),(object)KKIdleStateParam.NotVoice);
}
else
{
Debug.LogError("UnityEvo:KKFsmSystem: animator is null");
}
}
public override UniTask OnExitAsync()
{
return UniTask.CompletedTask;
}
}
}