using System.Collections.Generic; using UnityEngine; namespace Fort23.Mono { public class UIToggleList : MonoBehaviour { [HideInInspector] public UIToggleWidgetBasic lastSelectObj; [Header("重复点击时隐藏")] public bool isRepeatHind; [Header("是否默认选择")] public bool isRDefaultShow; public int index=-1; public UIToggleWidgetBasic[] childObj; [HideInInspector] public List _allChildObj = new List(); private void Awake() { if (childObj != null && childObj.Length > 0) { for (int i = 0; i < childObj.Length; i++) { if (childObj[i] == null) { continue; } childObj[i].Init(this); _allChildObj.Add(childObj[i]); } if (isRDefaultShow) ClickWidget(childObj[0]); } } public void AddToggleWidget(UIToggleWidgetBasic toggleWidget) { if (toggleWidget == null) { return; } toggleWidget.Init(this); _allChildObj.Add(toggleWidget); } public void ClickWidget(UIToggleWidgetBasic widget) { ShowTooge(widget); } public void ShowTargetIndex(int index) { ClickWidget(_allChildObj[index]); } protected void ShowTooge(UIToggleWidgetBasic widget) { if (isRepeatHind && lastSelectObj == widget) { lastSelectObj.Hind(); lastSelectObj = null; return; } lastSelectObj = widget; for (int i = 0; i < _allChildObj.Count; i++) { if (_allChildObj[i] == null) { continue; } if (_allChildObj[i] != widget) { _allChildObj[i].Hind(); } else { _allChildObj[i].Show(); index = i; } } } public void GetChildObj() { UIToggleWidgetBasic[] uiToggleWidgetBasics = transform.GetComponentsInChildren(); childObj = uiToggleWidgetBasics; if (childObj != null && childObj.Length > 0) { for (int i = 0; i < childObj.Length; i++) { if (childObj[i] == null) { continue; } childObj[i].Init(this); _allChildObj.Add(childObj[i]); } if (isRDefaultShow) ClickWidget(childObj[0]); } } public void Hide() { index = -1; foreach (var cUIToggleWidgetBasic in _allChildObj) { cUIToggleWidgetBasic.Hind(); } } public void Clear() { index = -1; _allChildObj.Clear(); } } }