84 lines
2.7 KiB
C#
84 lines
2.7 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using UnityEngine;
|
|
using UVC.Core;
|
|
using UVC.Data;
|
|
using UVC.Data.Core;
|
|
using UVC.Data.Http;
|
|
using UVC.Factory.Alarm;
|
|
using UVC.Factory.Component;
|
|
using UVC.Factory.Playback;
|
|
using UVC.UI.Loading;
|
|
using UVC.UI.Tooltip;
|
|
|
|
namespace SampleProject
|
|
{
|
|
[DefaultExecutionOrder(90)]
|
|
public class SceneMain : SingletonScene<SceneMain>
|
|
{
|
|
|
|
public Action Initialized;
|
|
|
|
/// <summary>
|
|
/// 초기 화 메서드입니다.
|
|
/// Awake 메서드에서 호출되며, MonoBehaviour가 생성될 때 한 번만 실행됩니다.
|
|
/// </summary>
|
|
protected override void Init()
|
|
{
|
|
if (!TooltipManager.Instance.IsInitialized) TooltipManager.Instance.Initialize();
|
|
AppMain.Instance.Initialized += OnAppInitialized;
|
|
}
|
|
|
|
/// <summary>
|
|
/// AGV 관리자가 생성될 때 발생하는 이벤트를 처리합니다.
|
|
/// </summary>
|
|
/// <remarks>이 메서드는 AGV 관리자 생성과 관련된 필요한 초기화 또는 설정 작업을 수행하기 위한 것입니다.
|
|
/// 내부적으로 호출되며 외부 코드에서 직접 사용하도록 의도된 것이 아닙니다.
|
|
///</remarks>
|
|
internal void OnAGVCreated()
|
|
{
|
|
AlarmManager.Instance.Run();
|
|
}
|
|
|
|
private async void OnAppInitialized()
|
|
{
|
|
|
|
// AGVManager 생성 시 이벤트 처리
|
|
AGVManager.Instance.OnAGVCreated += OnAGVCreated;
|
|
|
|
PlaybackService.Instance.OnStopPlayback += OnStopPlayback;
|
|
|
|
await requestDataAsync();
|
|
|
|
if (Initialized != null)
|
|
{
|
|
Initialized.Invoke();
|
|
}
|
|
|
|
//MqttReceiver 시작
|
|
DataRepository.Instance.MqttReceiver.Start();
|
|
}
|
|
|
|
private async Task requestDataAsync()
|
|
{
|
|
UILoading.Show();
|
|
//Debug.Log("Requesting BaseInfo data...");
|
|
//var httpFetcher = DataRepository.Instance.HttpFetcher;
|
|
//var splitRequest = new HttpRequestConfig(URLList.Get("baseinfo"))
|
|
// .setSplitResponseByKey(true) // 응답을 키별로 분할
|
|
// .AddSplitConfig("AGV", DataMapperValidator.Get("AGV")) // "AGV" 키에 대한 매퍼, Validator 설정
|
|
// .AddSplitConfig("ALARM", DataMapperValidator.Get("ALARM")); // "ALARM" 키에 대한 매퍼, Validator 설정
|
|
//httpFetcher.Add("baseInfo", splitRequest);
|
|
//await httpFetcher.Excute("baseInfo");
|
|
//Debug.Log("BaseInfo data request completed.");
|
|
UILoading.Hide();
|
|
}
|
|
|
|
private async void OnStopPlayback()
|
|
{
|
|
await requestDataAsync();
|
|
}
|
|
|
|
}
|
|
}
|