Files
XRLib/Assets/Sample/Scripts/SampleProject/AppMain.cs

103 lines
3.6 KiB
C#
Raw Permalink Normal View History

using Cysharp.Threading.Tasks;
2025-10-16 10:24:29 +09:00
using Simulator.Config;
2025-06-20 17:37:20 +09:00
using System;
using System.Threading.Tasks;
2025-06-04 23:10:11 +09:00
using UnityEngine;
2025-06-20 17:37:20 +09:00
using UVC.Core;
2025-06-04 23:10:11 +09:00
using UVC.Data;
2025-07-22 19:58:14 +09:00
using UVC.Data.Core;
2025-09-25 16:31:52 +09:00
using UVC.Data.Mqtt;
using UVC.Locale;
using UVC.Util;
2025-06-04 23:10:11 +09:00
2025-06-05 20:09:28 +09:00
namespace SampleProject
2025-06-04 23:10:11 +09:00
{
2025-06-23 20:06:15 +09:00
[DefaultExecutionOrder(100)]
2025-06-20 17:37:20 +09:00
public class AppMain : SingletonApp<AppMain>
2025-06-04 23:10:11 +09:00
{
2025-06-20 17:37:20 +09:00
public Action Initialized;
/// <summary>
2025-07-22 19:58:14 +09:00
/// 초기 화 메서드입니다.
/// Awake 메서드에서 호출되며, MonoBehaviour가 생성될 때 한 번만 실행됩니다.
2025-06-20 17:37:20 +09:00
/// </summary>
protected override async void Init()
2025-06-04 23:10:11 +09:00
{
2025-11-11 09:42:47 +09:00
Debug.Log("test");
2025-08-04 20:15:20 +09:00
// 플레이 모드가 아닐 경우, 초기화 로직을 실행하지 않습니다.
if (!Application.isPlaying) return;
//로깅 설정
2025-11-11 09:42:47 +09:00
//Log4netCodeConfigurator.Setup();
2025-08-04 20:15:20 +09:00
await SettupConfigAsync();
2025-07-22 19:58:14 +09:00
SetNetworkConfig();
2025-06-20 17:37:20 +09:00
if (Initialized != null)
{
Initialized.Invoke();
}
}
void Start()
{
//Tester.RunAllTests();
2025-06-20 17:37:20 +09:00
}
private async UniTask SettupConfigAsync()
{
if (AppConfig.LoadConfig())
{
2025-07-24 18:28:09 +09:00
Application.targetFrameRate = AppConfig.Config.TargetFrameRate;
2025-07-22 19:58:14 +09:00
//기본 언어 설정
bool success = LocalizationManager.Instance.LoadDefaultLocalizationData(AppConfig.Config.Language);
Debug.Log($"LocalizationManager: LoadDefaultLocalizationData success: {success}");
if (!Application.isEditor && Application.platform == RuntimePlatform.WindowsPlayer)
{
2025-07-22 19:58:14 +09:00
//창 설정
if (AppConfig.Config.Window != null)
{
WindowTools.Instance.Init(AppConfig.Config.Window);
}
}
2025-08-04 20:15:20 +09:00
Constants.API_DOMAIN = AppConfig.Config.Api;
Constants.MQTT_DOMAIN = AppConfig.Config.Mqtt.Domain;
Constants.MQTT_PORT = AppConfig.Config.Mqtt.Port;
2025-09-25 16:31:52 +09:00
Constants.MQTT_DATA_KEY = AppConfig.Config.Mqtt.DataKey;
Constants.MQTT_MESSAGEPACK_ENABLED = AppConfig.Config.Mqtt.MessagePack;
}
//사용자 DataMask 설정 AppData에서 로드
2025-08-04 20:15:20 +09:00
await UserSetting.LoadFromAppData();
}
2025-07-22 19:58:14 +09:00
private void SetNetworkConfig()
2025-06-20 17:37:20 +09:00
{
2025-07-15 15:25:17 +09:00
2025-07-28 19:59:35 +09:00
URLList.Add("baseinfo", $"{Constants.API_DOMAIN}/baseinfo");
URLList.Add("playbackList", $"{Constants.API_DOMAIN}/playback/list");
URLList.Add("playbackFile", $"{Constants.API_DOMAIN}/playback");
2025-07-22 19:58:14 +09:00
2025-09-23 20:40:31 +09:00
//DataRepository.Instance.MqttReceiver.SetDomainPort("mqtt-input.flexing.ai", 3000);//VTM 외부망
//DataRepository.Instance.MqttReceiver.SetDomainPort("localhost", 1883);
2025-10-16 10:24:29 +09:00
//DataRepository.Instance.MqttReceiver.SetDataPicker(new MqttDataPicker(Constants.MQTT_DATA_KEY, Constants.MQTT_MESSAGEPACK_ENABLED));
2025-09-23 20:40:31 +09:00
DataRepository.Instance.MqttReceiver.SetDomainPort(Constants.MQTT_DOMAIN, Constants.MQTT_PORT);
2025-09-25 16:31:52 +09:00
DataRepository.Instance.MqttReceiver.AddTopic("AGV");
DataRepository.Instance.MqttReceiver.AddTopic("ALARM");
2025-08-14 20:05:04 +09:00
DataRepository.Instance.MqttReceiver.AddTopic("PORT");
2025-09-23 20:40:31 +09:00
//DataRepository.Instance.MqttReceiver.AddTopic("AGV_RECIPE");
2025-07-22 19:58:14 +09:00
//10초 후 정지
//UniTask.Delay(TimeSpan.FromSeconds(10)).ContinueWith(() =>
//{
2025-07-28 19:59:35 +09:00
// DataRepository.Instance.MqttReceiver.Exit();
//});
2025-06-04 23:10:11 +09:00
}
}
}