Files
ChunilENG/Assets/WorkSpace/Personal/JYM/UI_ProtocolSetting.cs
2025-04-16 15:34:14 +09:00

78 lines
2.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using WI;
namespace CHN
{
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 = FindSingle<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 = FindSingle<OptionManager>();
var option = optionManager.GetOption(mo);
foreach (var key in inputFields.Keys)
{
inputFields[key].text = option[key];
}
}
public void ResetInputFields(MonoBehaviour mo)
{
var optionManager = FindSingle<OptionManager>();
foreach (var key in initOption.Keys)
{
inputFields[key].text = initOption[key];
}
optionManager.SetOptionValue(mo, initOption);
}
public void AcceptInputFields(MonoBehaviour mo)
{
var optionManager = FindSingle<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;
}
}
}