重构inspector!

This commit is contained in:
SoulliesOfficial
2025-04-14 17:49:47 -04:00
parent bbca8b43fe
commit 11543b4997
81 changed files with 1037 additions and 903 deletions

View File

@@ -10,28 +10,45 @@ namespace Ichni.Editor
{
public class DynamicUIContainer : MonoBehaviour
{
Inspector Inspector => EditorManager.instance.uiManager.inspector;
public TMP_Text title;
public GridLayoutGroup gridLayoutGroup;
public List<DynamicUIElement> dynamicUIElements = new List<DynamicUIElement>();
[FormerlySerializedAs("container")] public RectTransform rect;
public RectTransform rect;
public List<DynamicUISubcontainer> subcontainers;
public void SetDeviver(int num){//rect 500
gridLayoutGroup.cellSize=new Vector2(Inspector.inspectorRect.rect.width/num,gridLayoutGroup.cellSize.y);
public int gridWidth, gridHeight;
public void Initialize(string titleText)
{
this.title.text = titleText;
this.subcontainers = new List<DynamicUISubcontainer>();
}
public DynamicUISubcontainer GenerateSubcontainer(int elementCountPerRow, float height = 100)
{
DynamicUISubcontainer subcontainer =
Instantiate(EditorManager.instance.basePrefabs.dynamicUISubcontainer, rect).
GetComponent<DynamicUISubcontainer>();
bool CanCompress=true;//这是是想着如果没有按钮以外的东西就把y值调小一点的
subcontainer.Initialize(this, elementCountPerRow, height);
subcontainers.Add(subcontainer);
return subcontainer;
}
foreach(var i in GetComponentsInChildren<DynamicUIElement>()){
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);
}
public Vector2Int GetGrid(int elementCountPerRow, int heightUnit)
{
return new Vector2Int(600 / elementCountPerRow, 100 * heightUnit);
}
public void CheckGrid(Vector2Int newGrid)
{
if(newGrid.x > gridWidth)
{
gridWidth = newGrid.x;
}
if(newGrid.y > gridHeight)
{
gridHeight = newGrid.y;
}
if(CanCompress)gridLayoutGroup.cellSize=new Vector2(gridLayoutGroup.cellSize.x,gridLayoutGroup.cellSize.y/2);
//Danger写了好多特判
}
}
}