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(); } }