Files
ichni_Creator_Studio/Assets/Scripts/DynamicUI/MainUI/GeneralSecondaryWindow.cs
SoulliesOfficial 7533e7031d 更新
2026-03-28 06:30:33 -04:00

75 lines
3.0 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;
}
public DynamicUIToggle GenerateToggle(DynamicUISubcontainer subcontainer, string title, bool defaultState = false)
{
DynamicUIToggle toggle = Instantiate(EditorManager.instance.basePrefabs.toggle, subcontainer.rect)
.GetComponent<DynamicUIToggle>();
toggle.Initialize(null, title, string.Empty);
toggle.toggle.isOn = defaultState;
subcontainer.dynamicUIElements.Add(toggle);
return toggle;
}
}
}