92 lines
3.0 KiB
C#

using FSM;
using UnityEngine;
using ZXKFramework;
namespace DongWuYiXue.DaoNiaoShu
{
public class BaChuDaoNiaoGuanState : FsmState<FSMManager>
{
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<AVProValue>("拔出视频");
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<DaoNiao_Sensor>().isOpen)
{
//baGuanValue += .0005f;
value = GameManager.Instance.senSor.GetSensor<DaoNiao_Sensor>().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<DaoNiao_Sensor>().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;
}
}
}