Files
EnglewoodLAB/Assets/Scripts/UI/SettingPanel/UI_ProtocolSetting.cs
SOOBEEN HAN f1894889ee <refactor> Octopus Twin 템플릿 적용
- 기능 외 UI 구조만 적용
- 프로젝트에 걸맞는 UI는 재작업 필요
2026-02-23 18:20:09 +09:00

102 lines
3.2 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using System;
namespace EnglewoodLAB.UI
{
public class UI_ProtocolSetting : MonoBehaviour
{
public Image Image_Connected;
public Image Image_UnConnected;
public TextMeshProUGUI ErrorMessage;
private Dictionary<string, TMP_InputField> inputFields = new();
private Dictionary<string, string> initOption = new();
private Dictionary<string, string> mappingOption = new();
public void InitInputFields(MonoBehaviour mo)
{
var optionManager = FindFirstObjectByType<OptionManager>();
var option = optionManager.GetOption(mo);
var optionInputFields = transform.GetComponentsInChildren<TMP_InputField>();
foreach (var mqttInputField in optionInputFields)
{
inputFields.Add(mqttInputField.name, mqttInputField);
initOption.Add(mqttInputField.name, option[mqttInputField.name]);
mqttInputField.text = option[mqttInputField.name];
}
}
public void UnAcceptInputFields(MonoBehaviour mo)
{
var optionManager = FindFirstObjectByType<OptionManager>();
var option = optionManager.GetOption(mo);
foreach (var key in inputFields.Keys)
{
inputFields[key].text = option[key];
}
}
public void ResetInputFields(MonoBehaviour mo)
{
var optionManager = FindFirstObjectByType<OptionManager>();
foreach (var key in initOption.Keys)
{
inputFields[key].text = initOption[key];
}
optionManager.SetOptionValue(mo, initOption);
}
public void AcceptInputFields(MonoBehaviour mo)
{
var optionManager = FindFirstObjectByType<OptionManager>();
mappingOption.Clear();
foreach (var mqttInputField in inputFields.Values)
{
mappingOption.Add(mqttInputField.name, mqttInputField.text);
}
optionManager.SetOptionValue(mo, mappingOption);
}
public void ProtocolSuccessCheck(Protocol protocol)
{
var isActive = protocol.isSuccess;
Image_Connected.gameObject.SetActive(isActive);
Image_UnConnected.gameObject.SetActive(!isActive);
var color = protocol.isSuccess ? new Color(0, 245, 0) : new Color(245, 0, 0);
ErrorMessage.color = color;
ErrorMessage.text = protocol.errorMessage;
}
internal void ProtocolSuccessCheck(MQTT mqttManager)
{
throw new NotImplementedException();
}
internal void InitInputFields(HTTPRequester httpManager)
{
throw new NotImplementedException();
}
internal void ResetInputFields(HTTPRequester httpManager)
{
throw new NotImplementedException();
}
internal void AcceptInputFields(HTTPRequester httpManager)
{
throw new NotImplementedException();
}
internal void UnAcceptInputFields(HTTPRequester httpManager)
{
throw new NotImplementedException();
}
}
}