123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- 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<UIToggleWidgetBasic> _allChildObj = new List<UIToggleWidgetBasic>();
- 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<UIToggleWidgetBasic>();
- 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();
- }
- }
- }
|