34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
|
||
namespace Ichni.Editor
|
||
{
|
||
public class DynamicUISubcontainer : MonoBehaviour
|
||
{
|
||
Inspector Inspector => EditorManager.instance.uiManager.inspector;
|
||
public DynamicUIContainer parentContainer;
|
||
public GridLayoutGroup gridLayoutGroup;
|
||
public RectTransform rect;
|
||
public List<DynamicUIElement> dynamicUIElements;
|
||
|
||
public void Initialize(DynamicUIContainer parentContainer, int elementCountPerRow, float height = 100)
|
||
{
|
||
this.parentContainer = parentContainer;
|
||
this.gridLayoutGroup.cellSize = new Vector2(600f / elementCountPerRow, height);
|
||
// 支持对象池复用:避免每次 new List 产生 GC,直接清空
|
||
if (this.dynamicUIElements == null)
|
||
this.dynamicUIElements = new List<DynamicUIElement>();
|
||
else
|
||
this.dynamicUIElements.Clear();
|
||
}
|
||
|
||
public DynamicUISubcontainer Mark(string mark, IHaveInspection inspection = null)
|
||
{
|
||
inspection ??= Inspector;
|
||
inspection.MarkedSubcontainers.TryAdd(mark, this);
|
||
return this;
|
||
}
|
||
}
|
||
} |