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