using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.Serialization; using UnityEngine.UI; namespace Ichni.Editor { public class DynamicUIContainer : MonoBehaviour { Inspector Inspector => EditorManager.instance.uiManager.inspector; public TMP_Text title; public GridLayoutGroup gridLayoutGroup; public List dynamicUIElements = new List(); [FormerlySerializedAs("container")] public RectTransform rect; public void SetDeviver(int num){//rect 500 gridLayoutGroup.cellSize=new Vector2(Inspector.inspectorRect.rect.width/num,gridLayoutGroup.cellSize.y); bool CanCompress=true;//这是是想着如果没有按钮以外的东西就把y值调小一点的 foreach(var i in GetComponentsInChildren()){ i.DeviverSet(num); if(i.GetType()!=typeof(DynamicUIButton))CanCompress=false; if(i.GetType()==typeof(DynamicUIBaseColorPicker)|| i.GetType()==typeof(DynamicUIEmissionColorPicker)){//一个container可能不会有除了color以外的的东西吧 gridLayoutGroup.cellSize=new Vector2(gridLayoutGroup.cellSize.x,gridLayoutGroup.cellSize.y*2.5f); } } if(CanCompress)gridLayoutGroup.cellSize=new Vector2(gridLayoutGroup.cellSize.x,gridLayoutGroup.cellSize.y/2); //Danger:写了好多特判 } } }