using System; using Cysharp.Threading.Tasks; using GadGame.Manager; using GadGame.Network; using UnityEngine; namespace GadGame.State.MainFlowState { public class CTAState : State { private bool _scanSuccess; private float _leaveTimer; public override async void Enter() { _leaveTimer = 0; _scanSuccess = false; Runner.ScanSuccess.Register(OnScanSuccess); await LoadSceneManager.Instance.LoadSceneAsync(Runner.SceneFlowConfig.CTASceneMale.ScenePath); } public override void Update(float time) { Runner.EncodeImage.Raise(UdpSocket.Instance.DataReceived.StreamingData); if(_scanSuccess || time >= 30) { Runner.SetState(); UdpSocket.Instance.SendDataToPython("End"); return; } if (!UdpSocket.Instance.DataReceived.Engage) { _leaveTimer += Time.deltaTime; if ( _leaveTimer >= 10) { Runner.SetState(); UdpSocket.Instance.SendDataToPython("End"); } } else { _leaveTimer = 0; } // if (time >= 30) // { // Runner.SetState(); // UdpSocket.Instance.SendDataToPython("End"); // } } public override void Exit() { Runner.ScanSuccess.Unregister(OnScanSuccess); LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.PassByScene.ScenePath); } private async void OnScanSuccess() { _scanSuccess = true; await UniTask.Delay(TimeSpan.FromSeconds(10)); } private void LeaveComplete() { Runner.SetState(); } } }