123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- namespace ChivaXR.Op
- {
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using UnityEngine;
- using Sirenix.OdinInspector;
- /// <summary>
- /// 激活状态下的选择状态类型 -开关(off/on)等状态
- /// </summary>
- public abstract class OperationData_ToggleMode : OperationDataBase
- {
- public override OperationDataType OperationType { get { return OperationDataType.Toggle; } }
- //状态列表
- public List<string> toggleGroup = new List<string>();
- [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<int> valueDropDown = new ValueDropdownList<int>();
- for (int i = 0; i < toggleGroup.Count; i++)
- {
- valueDropDown.Add(toggleGroup[i], i);
- }
- return valueDropDown;
- }
- /// <summary>
- /// 获取开关列表
- /// </summary>
- /// <returns></returns>
- 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();
- }
- }
|