Files

97 lines
3.0 KiB
C#
Raw Permalink Normal View History

using Newtonsoft.Json;
using System.IO;
using UnityEngine;
using static UVC.Util.WindowTools;
2026-03-10 11:35:30 +09:00
namespace Factory.Config
{
/// <summary>
/// 애플리케이션의 설정을 관리하는 클래스입니다. AppConfig.json 파일에서 설정을 로드합니다.
/// </summary>
2026-03-10 11:35:30 +09:00
public class FactoryAppConfig
{
/// <summary>
/// 로드된 애플리케이션 설정을 담고 있는 정적 인스턴스입니다.
/// </summary>
2026-03-10 11:35:30 +09:00
public static FactoryAppConfig Config { get; private set; }
/// <summary>
/// Windows 런타임 환경에서 StreamingAssets 폴더의 AppConfig.json 파일로부터 설정을 로드합니다.
/// </summary>
/// <returns>설정 로드 성공 여부를 반환합니다.</returns>
public static bool LoadConfig()
{
2026-03-10 11:35:30 +09:00
string path = Path.Combine(Application.streamingAssetsPath, "FactoryAppConfig.json");
if (File.Exists(path))
{
string json = File.ReadAllText(path);
2026-03-10 11:35:30 +09:00
Config = JsonConvert.DeserializeObject<FactoryAppConfig>(json);
Debug.Log($"AppConfig loaded from {path}");
return Config != null;
}
else
{
Debug.LogError($"File not found: {path}");
}
return false;
}
/// <summary>
/// 애플리케이션의 언어 설정입니다.
/// </summary>
[JsonProperty("language")]
public string Language { get; set; }
/// <summary>
/// 목표 프레임 레이트 설정입니다.
/// </summary>
[JsonProperty("targetFrameRate")]
public int TargetFrameRate { get; set; }
/// <summary>
/// 애플리케이션의 창 관련 설정입니다.
/// </summary>
[JsonProperty("window")]
public WindowInfoData Window { get; set; }
2026-03-10 11:35:30 +09:00
/// <summary>
/// API 도메인 설정입니다.
/// </summary>
[JsonProperty("api")]
public string Api { get; set; }
/// <summary>
/// Mqtt 도메인 설정입니다.
/// </summary>
[JsonProperty("mqtt")]
public MQTTConfig Mqtt { get; set; }
}
2026-03-10 11:35:30 +09:00
public class MQTTConfig
{
/// <summary>
/// MQTT 도메인 설정입니다.
/// </summary>
[JsonProperty("host")]
public string Domain { get; set; }
/// <summary>
/// MQTT 포트 설정입니다.
/// </summary>
[JsonProperty("port")]
public int Port { get; set; }
/// <summary>
/// MQTT JSON에서 데이터를 가지고 있는 키입니다.
/// </summary>
[JsonProperty("dataKey")]
public string DataKey { get; set; }
/// <summary>
/// MQTT MessagePack 디코딩 사용할지 설정입니다.
/// </summary>
[JsonProperty("messagePack")]
public bool MessagePack { get; set; }
}
}