Files
ichni_Creator_Studio/Assets/Scripts/DynamicUI/MainUI/GeneralSecondaryWindow.cs
SoulliesOfficial 11543b4997 重构inspector!
2025-04-14 17:49:47 -04:00

65 lines
2.5 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
namespace Ichni.Editor
{
public class GeneralSecondaryWindow : MovableWindow
{
public RectTransform WindowRect { get; set; }
public List<DynamicUIContainer> Containers { get; set; }
public void Initialize(string titleText, UnityAction closeAction = null)
{
WindowRect = windowRect;
Containers = new List<DynamicUIContainer>();
InitializeWindow(titleText, closeAction);
}
public DynamicUIContainer GenerateContainer(string title)
{
DynamicUIContainer container =
Instantiate(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
.GetComponent<DynamicUIContainer>();
container.title.text = title;
Containers.Add(container);
return container;
}
public DynamicUIContainer GenerateContainer()
{
DynamicUIContainer container =
Instantiate(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
.GetComponent<DynamicUIContainer>();
Destroy(container.title.gameObject);
Containers.Add(container);
return container;
}
public DynamicUIInputField GenerateInputField(DynamicUISubcontainer subcontainer,
string title, string defaultText = "") //不与参数绑定的InputField
{
DynamicUIInputField inputField = Instantiate(EditorManager.instance.basePrefabs.inputField, subcontainer.rect)
.GetComponent<DynamicUIInputField>();
inputField.Initialize(null, title, string.Empty);
inputField.SetDefaultValue(defaultText);
subcontainer.dynamicUIElements.Add(inputField);
return inputField;
}
public DynamicUIButton GenerateButton(DynamicUISubcontainer subcontainer, string title,
UnityAction function)
{
DynamicUIButton button = Instantiate(EditorManager.instance.basePrefabs.button, subcontainer.rect)
.GetComponent<DynamicUIButton>();
button.SetText(title);
button.Initialize(null, title, string.Empty);
button.ApplyFunction(function);
subcontainer.dynamicUIElements.Add(button);
return button;
}
}
}