라이브러리 정리
This commit is contained in:
109
Assets/Scripts/FactorySample/AppMain.cs
Normal file
109
Assets/Scripts/FactorySample/AppMain.cs
Normal file
@@ -0,0 +1,109 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using FactorySample.Config;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UVC.Core;
|
||||
using UVC.Data;
|
||||
using UVC.Data.Mqtt;
|
||||
using UVC.Locale;
|
||||
using UVC.Util;
|
||||
|
||||
namespace FactorySample
|
||||
{
|
||||
[DefaultExecutionOrder(100)]
|
||||
public class AppMain : SingletonApp<AppMain>
|
||||
{
|
||||
|
||||
public Action Initialized;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 초기 화 메서드입니다.
|
||||
/// Awake 메서드에서 호출되며, MonoBehaviour가 생성될 때 한 번만 실행됩니다.
|
||||
/// </summary>
|
||||
protected override async void Init()
|
||||
{
|
||||
// 플레이 모드가 아닐 경우, 초기화 로직을 실행하지 않습니다.
|
||||
if (!Application.isPlaying) return;
|
||||
|
||||
#if !UNITY_WEBGL || UNITY_EDITOR
|
||||
//로깅 설정
|
||||
UVC.Log.Log4netCodeConfigurator.Setup();
|
||||
#endif
|
||||
|
||||
await SettupConfigAsync();
|
||||
SetNetworkConfig();
|
||||
if (Initialized != null)
|
||||
{
|
||||
Initialized.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
//Tester.RunAllTests();
|
||||
}
|
||||
|
||||
private async UniTask SettupConfigAsync()
|
||||
{
|
||||
if (AppConfig.LoadConfig())
|
||||
{
|
||||
Application.targetFrameRate = AppConfig.Config.TargetFrameRate;
|
||||
|
||||
//기본 언어 설정
|
||||
bool success = LocalizationManager.Instance.LoadDefaultLocalizationData(AppConfig.Config.Language);
|
||||
Debug.Log($"LocalizationManager: LoadDefaultLocalizationData success: {success}");
|
||||
if (!Application.isEditor && Application.platform == RuntimePlatform.WindowsPlayer)
|
||||
{
|
||||
//창 설정
|
||||
if (AppConfig.Config.Window != null)
|
||||
{
|
||||
WindowTools.Instance.Init(AppConfig.Config.Window);
|
||||
}
|
||||
}
|
||||
|
||||
Constants.API_DOMAIN = AppConfig.Config.Api;
|
||||
Constants.MQTT_DOMAIN = AppConfig.Config.Mqtt.Domain;
|
||||
Constants.MQTT_PORT = AppConfig.Config.Mqtt.Port;
|
||||
Constants.MQTT_DATA_KEY = AppConfig.Config.Mqtt.DataKey;
|
||||
Constants.MQTT_MESSAGEPACK_ENABLED = AppConfig.Config.Mqtt.MessagePack;
|
||||
}
|
||||
|
||||
//사용자 DataMask 설정 AppData에서 로드
|
||||
await UserSetting.LoadFromAppData();
|
||||
|
||||
}
|
||||
|
||||
private void SetNetworkConfig()
|
||||
{
|
||||
|
||||
URLList.Add("baseinfo", $"{Constants.API_DOMAIN}/baseinfo");
|
||||
URLList.Add("playbackList", $"{Constants.API_DOMAIN}/playback/list");
|
||||
URLList.Add("playbackFile", $"{Constants.API_DOMAIN}/playback");
|
||||
|
||||
bool useWebSocket = false;
|
||||
//test WebGL 설정
|
||||
#if UNITY_WEBGL && !UNITY_EDITOR
|
||||
Constants.MQTT_PORT = 8083;
|
||||
useWebSocket = true;
|
||||
#endif
|
||||
|
||||
//DataRepository.Instance.MqttReceiver.SetDomainPort("mqtt-input.flexing.ai", 3000);//VTM 외부망
|
||||
//DataRepository.Instance.MqttReceiver.SetDomainPort("localhost", 1883);
|
||||
DataRepository.Instance.MqttReceiver.SetDataPicker(new MqttDataPicker(Constants.MQTT_DATA_KEY, Constants.MQTT_MESSAGEPACK_ENABLED));
|
||||
DataRepository.Instance.MqttReceiver.SetDomainPort(Constants.MQTT_DOMAIN, Constants.MQTT_PORT);
|
||||
DataRepository.Instance.MqttReceiver.SetUseWebSocket(useWebSocket);
|
||||
DataRepository.Instance.MqttReceiver.AddTopic("AGV");
|
||||
DataRepository.Instance.MqttReceiver.AddTopic("ALARM");
|
||||
DataRepository.Instance.MqttReceiver.AddTopic("PORT");
|
||||
//DataRepository.Instance.MqttReceiver.AddTopic("AGV_RECIPE");
|
||||
|
||||
//10초 후 정지
|
||||
//UniTask.Delay(TimeSpan.FromSeconds(10)).ContinueWith(() =>
|
||||
//{
|
||||
// DataRepository.Instance.MqttReceiver.Exit();
|
||||
//});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user