using FSM; using UnityEngine; using ZXKFramework; namespace DongWuYiXue.DaoNiaoShu { public class BaChuDaoNiaoGuanState : FsmState { Coroutine cor; AVProValue avProValue; bool isBaGuan = false; float baGuanValue = 0; public override void OnStateEnter() { base.OnStateEnter(); this.Log("进入拔出导尿管状态"); avProValue = GameManager.Instance.transform.FindFirst("拔出视频"); baGuanValue = 0; fsm.ShowCamera("拔管_Camera"); fsm.ShowTip(0); fsm.PlayBgm(0); cor = Game.Instance.IEnumeratorManager.Run(3.0f, () => { isBaGuan = true; avProValue.gameObject.SetActive(true); }); } public override void OnStateStay() { base.OnStateStay(); if (isBaGuan) { baGuanValue += .0005f; fsm.PlayClip("拔管_TimeLine", null, baGuanValue); avProValue.PlayValue = baGuanValue; avProValue.PlayVideoAsValue(); } if (isBaGuan && Input.GetKeyDown(KeyCode.L)) { baGuanValue = 1.0f; fsm.PlayClip("拔管_TimeLine", null, baGuanValue); avProValue.PlayValue = baGuanValue; avProValue.PlayVideoAsValue(); } if (baGuanValue >= 1.0f && isBaGuan) { isBaGuan = false; avProValue.gameObject.SetActive(false); if (fsm.main_gameModel.modeType == ModeType.ShiXun) { fsm.AddScore(5, 0); } fsm.nextState = true; } } public override void OnStateExit() { base.OnStateExit(); if (null != cor) { Game.Instance.IEnumeratorManager.Stop(cor); cor = null; } isBaGuan = false; avProValue.gameObject.SetActive(false); fsm.nextState = false; } } }