AxibugEmuOnline/AxibugEmuOnline.Client.Transplant/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs

57 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace AxibugEmuOnline.Client
{
public class OptionUI_ValueEditItem_EnumEdit : MonoBehaviour, IValueEditControl
{
[SerializeField]
Text txt_value;
private ValueSetMenu m_valueMenu;
private List<Enum> m_enumValues = new List<Enum>();
private int m_valueIndex;
public void SetData(ValueSetMenu valueMenu)
{
m_valueMenu = valueMenu;
txt_value.text = valueMenu.ValueRaw.ToString();
foreach (Enum enumValue in Enum.GetValues(valueMenu.ValueType))
{
m_enumValues.Add(enumValue);
}
m_valueIndex = m_enumValues.IndexOf((Enum)valueMenu.ValueRaw);
}
public void OnLeft()
{
m_valueIndex--;
if (m_valueIndex < 0) m_valueIndex = m_enumValues.Count - 1;
var value = m_enumValues[m_valueIndex];
txt_value.text = value.ToString();
m_valueMenu.OnValueChanged(value);
}
public void OnRight()
{
m_valueIndex++;
if (m_valueIndex >= m_enumValues.Count) m_valueIndex = 0;
var value = m_enumValues[m_valueIndex];
txt_value.text = value.ToString();
m_valueMenu.OnValueChanged(value);
}
public void OnExecute()
{
OnRight();
}
}
}