namespace ChivaXR.Op
{
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Sirenix.OdinInspector;
///
/// 激活状态下的选择状态类型 -开关(off/on)等状态
///
public abstract class OperationData_ToggleMode : OperationDataBase
{
public override OperationDataType OperationType { get { return OperationDataType.Toggle; } }
//状态列表
public List toggleGroup = new List();
[SerializeField]
[HideInInspector]
private int toggleIndex;
[ShowInInspector]
[ValueDropdown("GetToggleName")]
public int ToggleIndex
{
get { return toggleIndex; }
set
{
if (toggleIndex != value)
{
toggleIndex = Mathf.Clamp(value, 0, toggleGroup.Count - 1);
OpValue = toggleIndex;
SetToggleDataValue();
}
}
}
private IEnumerable GetToggleName()
{
ValueDropdownList valueDropDown = new ValueDropdownList();
for (int i = 0; i < toggleGroup.Count; i++)
{
valueDropDown.Add(toggleGroup[i], i);
}
return valueDropDown;
}
///
/// 获取开关列表
///
///
public string[] GetToggleListName()
{
return toggleGroup.ToArray();
}
public override void SetDataStateValue(float value)
{
int tempIndex = (int)value;
if (ToggleIndex != tempIndex)
{
ToggleIndex = tempIndex;
}
}
public abstract void SetToggleDataValue();
}
}