2024-05-24 01:16:15 -07:00
|
|
|
using System;
|
|
|
|
using Cysharp.Threading.Tasks;
|
2024-04-11 01:55:35 -07:00
|
|
|
using GadGame.Manager;
|
2024-04-15 04:10:00 -07:00
|
|
|
using GadGame.Network;
|
2024-06-18 23:34:19 -07:00
|
|
|
using UnityEngine;
|
2024-04-11 01:55:35 -07:00
|
|
|
|
2024-04-15 04:10:00 -07:00
|
|
|
namespace GadGame.State.MainFlowState
|
2024-04-11 01:55:35 -07:00
|
|
|
{
|
|
|
|
public class CTAState : State<MainFlow>
|
|
|
|
{
|
2024-05-24 01:16:15 -07:00
|
|
|
|
|
|
|
private bool _scanSuccess;
|
2024-06-18 23:34:19 -07:00
|
|
|
private float _leaveTimer;
|
|
|
|
|
2024-05-24 01:16:15 -07:00
|
|
|
public override async void Enter()
|
2024-04-11 01:55:35 -07:00
|
|
|
{
|
2024-06-23 19:17:43 -07:00
|
|
|
await LoadSceneManager.Instance.LoadSceneAsync(Runner.SceneFlowConfig.CTASceneMale.ScenePath);
|
2024-06-19 02:32:17 -07:00
|
|
|
Runner.ScanSuccess.Register(OnScanSuccess);
|
2024-06-18 23:34:19 -07:00
|
|
|
|
|
|
|
_leaveTimer = 0;
|
2024-04-11 01:55:35 -07:00
|
|
|
}
|
|
|
|
|
2024-06-18 23:34:19 -07:00
|
|
|
public override void Update(float time)
|
2024-04-11 01:55:35 -07:00
|
|
|
{
|
2024-06-23 19:17:43 -07:00
|
|
|
Runner.EncodeImage.Raise(UdpSocket.Instance.DataReceived.StreamingData);
|
2024-06-25 01:40:52 -07:00
|
|
|
if(_scanSuccess)
|
|
|
|
{
|
|
|
|
UdpSocket.Instance.SendDataToPython("End");
|
|
|
|
Runner.SetState<IdleState>();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2024-06-18 23:34:19 -07:00
|
|
|
if (!UdpSocket.Instance.DataReceived.Engage)
|
|
|
|
{
|
|
|
|
_leaveTimer += Time.deltaTime;
|
|
|
|
if ( _leaveTimer >= 10)
|
|
|
|
{
|
|
|
|
Runner.SetState<IdleState>();
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
_leaveTimer = 0;
|
|
|
|
}
|
2024-05-24 01:16:15 -07:00
|
|
|
if (time >= 60)
|
2024-04-15 04:10:00 -07:00
|
|
|
{
|
2024-04-25 04:54:33 -07:00
|
|
|
Runner.SetState<IdleState>();
|
2024-06-24 01:57:54 -07:00
|
|
|
UdpSocket.Instance.SendDataToPython("End");
|
2024-04-15 04:10:00 -07:00
|
|
|
}
|
2024-04-11 01:55:35 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
public override void Exit()
|
|
|
|
{
|
2024-06-19 02:32:17 -07:00
|
|
|
Runner.ScanSuccess.Unregister(OnScanSuccess);
|
2024-06-18 23:34:19 -07:00
|
|
|
LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.PassByScene.ScenePath);
|
2024-05-24 01:16:15 -07:00
|
|
|
}
|
2024-04-19 03:46:17 -07:00
|
|
|
|
2024-05-24 01:16:15 -07:00
|
|
|
private async void OnScanSuccess() {
|
|
|
|
_scanSuccess = true;
|
|
|
|
await UniTask.Delay(TimeSpan.FromSeconds(10));
|
2024-06-18 23:34:19 -07:00
|
|
|
Runner.SetState<IdleState>();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void LeaveComplete()
|
|
|
|
{
|
2024-05-24 01:16:15 -07:00
|
|
|
Runner.SetState<IdleState>();
|
2024-04-11 01:55:35 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|