重构inspector!
This commit is contained in:
@@ -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:写了好多特判
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user