using FSM; using UnityEngine; using ZXKFramework; namespace DongWuYiXue.DaoNiaoShu { public class BaChuDaoNiaoGuanState : FsmState { Coroutine cor; AVProValue avProValue; bool isBaGuan = false; float baGuanValue = 0; float value; 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; isBaGuan = false; fsm.PlayClip("拔管_TimeLine", () => { fsm.nextState = true; }); avProValue.PlayValue = baGuanValue; avProValue.PlayVideoAsValue(); } if (isBaGuan && GameManager.Instance.senSor.GetSensor().isOpen) { //baGuanValue += .0005f; value = GameManager.Instance.senSor.GetSensor().daoNiaoDeep / 20; //baGuanValue = 1.0f; fsm.PlayClip("拔管_TimeLine", null, 1 - value); avProValue.PlayValue = 1 - value; avProValue.PlayVideoAsValue(); } if (1 - value >= 1.0f && isBaGuan) { isBaGuan = false; avProValue.gameObject.SetActive(false); if (fsm.main_gameModel.modeType == ModeType.ShiXun) { fsm.AddScore(5, 0); } if (fsm.main_gameModel.modeType == ModeType.KaoHe) { fsm.AddScore(3, 0); } fsm.nextState = true; } if (!GameManager.Instance.senSor.GetSensor().isOpen) { fsm.StopClip("拔管_TimeLine"); } } 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; } } }