超级爆改
This commit is contained in:
@@ -4,6 +4,7 @@ using System.Collections.Generic;
|
||||
using Ichni;
|
||||
using Ichni.Editor;
|
||||
using Ichni.RhythmGame;
|
||||
using Lean.Pool;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.Profiling;
|
||||
@@ -46,7 +47,7 @@ namespace Ichni.Editor
|
||||
public DynamicUIContainer GenerateContainer(string titleText)
|
||||
{
|
||||
DynamicUIContainer container =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
|
||||
LeanPool.Spawn(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
|
||||
.GetComponent<DynamicUIContainer>();
|
||||
container.Initialize(titleText);
|
||||
Containers.Add(container);
|
||||
@@ -56,9 +57,17 @@ namespace Ichni.Editor
|
||||
public DynamicUIContainer GenerateContainer()
|
||||
{
|
||||
DynamicUIContainer container =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
|
||||
LeanPool.Spawn(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
|
||||
.GetComponent<DynamicUIContainer>();
|
||||
Object.Destroy(container.title.gameObject);
|
||||
// 对象池复用安全:不能 Destroy title,改为 SetActive(false)
|
||||
container.title.gameObject.SetActive(false);
|
||||
// 初始化内部状态(不传题目)
|
||||
if (container.subcontainers == null)
|
||||
container.subcontainers = new System.Collections.Generic.List<DynamicUISubcontainer>();
|
||||
else
|
||||
container.subcontainers.Clear();
|
||||
container.gridWidth = 0;
|
||||
container.gridHeight = 0;
|
||||
Containers.Add(container);
|
||||
return container;
|
||||
}
|
||||
@@ -66,7 +75,7 @@ namespace Ichni.Editor
|
||||
public DynamicUIButton GenerateButton(IBaseElement baseElement, DynamicUISubcontainer subcontainer, string title,
|
||||
UnityAction function)
|
||||
{
|
||||
DynamicUIButton button = Object.Instantiate(EditorManager.instance.basePrefabs.button, subcontainer.rect)
|
||||
DynamicUIButton button = LeanPool.Spawn(EditorManager.instance.basePrefabs.button, subcontainer.rect)
|
||||
.GetComponent<DynamicUIButton>();
|
||||
button.SetText(title);
|
||||
button.Initialize(baseElement, title, string.Empty);
|
||||
@@ -80,7 +89,7 @@ namespace Ichni.Editor
|
||||
public DynamicUIToggle GenerateToggle(IBaseElement baseElement, DynamicUISubcontainer subcontainer, string title,
|
||||
string parameterName = "")
|
||||
{
|
||||
DynamicUIToggle toggle = Object.Instantiate(EditorManager.instance.basePrefabs.toggle, subcontainer.rect)
|
||||
DynamicUIToggle toggle = LeanPool.Spawn(EditorManager.instance.basePrefabs.toggle, subcontainer.rect)
|
||||
.GetComponent<DynamicUIToggle>();
|
||||
toggle.Initialize(baseElement, title, parameterName);
|
||||
var nav = new Navigation { mode = Navigation.Mode.None };
|
||||
@@ -92,8 +101,8 @@ namespace Ichni.Editor
|
||||
public DynamicUIInputField GenerateInputField(DynamicUISubcontainer subcontainer,
|
||||
string title, string defaultText = "") //不与参数绑定的InputField
|
||||
{
|
||||
DynamicUIInputField inputField = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.inputField, subcontainer.rect)
|
||||
DynamicUIInputField inputField = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.inputField, subcontainer.rect)
|
||||
.GetComponent<DynamicUIInputField>();
|
||||
inputField.Initialize(null, title, string.Empty);
|
||||
inputField.SetDefaultValue(defaultText);
|
||||
@@ -106,8 +115,8 @@ namespace Ichni.Editor
|
||||
public DynamicUIInputField GenerateInputField(IBaseElement baseElement,
|
||||
DynamicUISubcontainer subcontainer, string title, string parameterName, bool isAutoUpdate = false) //与参数绑定的InputField
|
||||
{
|
||||
DynamicUIInputField inputField = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.inputField, subcontainer.rect)
|
||||
DynamicUIInputField inputField = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.inputField, subcontainer.rect)
|
||||
.GetComponent<DynamicUIInputField>();
|
||||
inputField.Initialize(baseElement, title, parameterName);
|
||||
var nav = new Navigation { mode = Navigation.Mode.None };
|
||||
@@ -120,7 +129,7 @@ namespace Ichni.Editor
|
||||
Vector3 defaultVector3 = default)
|
||||
{
|
||||
DynamicUIVector3InputField vector3InputField =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.vector3InputField, subcontainer.rect)
|
||||
LeanPool.Spawn(EditorManager.instance.basePrefabs.vector3InputField, subcontainer.rect)
|
||||
.GetComponent<DynamicUIVector3InputField>();
|
||||
vector3InputField.Initialize(null, title, string.Empty);
|
||||
vector3InputField.SetDefaultValue(defaultVector3);
|
||||
@@ -136,7 +145,7 @@ namespace Ichni.Editor
|
||||
DynamicUISubcontainer subcontainer, string title, string parameterName, bool isAutoUpdate = false)
|
||||
{
|
||||
DynamicUIVector3InputField vector3InputField =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.vector3InputField, subcontainer.rect)
|
||||
LeanPool.Spawn(EditorManager.instance.basePrefabs.vector3InputField, subcontainer.rect)
|
||||
.GetComponent<DynamicUIVector3InputField>();
|
||||
vector3InputField.Initialize(baseElement, title, parameterName);
|
||||
vector3InputField.SetAutoUpdate(isAutoUpdate);
|
||||
@@ -152,7 +161,7 @@ namespace Ichni.Editor
|
||||
DynamicUISubcontainer subcontainer, string title, string parameterName, bool isAutoUpdate = false)
|
||||
{
|
||||
DynamicUIVector2InputField vector2InputField =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.vector2InputField, subcontainer.rect)
|
||||
LeanPool.Spawn(EditorManager.instance.basePrefabs.vector2InputField, subcontainer.rect)
|
||||
.GetComponent<DynamicUIVector2InputField>();
|
||||
vector2InputField.Initialize(baseElement, title, parameterName);
|
||||
vector2InputField.SetAutoUpdate(isAutoUpdate);
|
||||
@@ -166,8 +175,8 @@ namespace Ichni.Editor
|
||||
public DynamicUIBaseColorPicker GenerateBaseColorPicker(IBaseElement baseElement, DynamicUISubcontainer subcontainer,
|
||||
string title, string parameterName)
|
||||
{
|
||||
DynamicUIBaseColorPicker colorPicker = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.baseColorPicker, subcontainer.rect)
|
||||
DynamicUIBaseColorPicker colorPicker = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.baseColorPicker, subcontainer.rect)
|
||||
.GetComponent<DynamicUIBaseColorPicker>();
|
||||
colorPicker.Initialize(baseElement, title, parameterName);
|
||||
var nav = new Navigation { mode = Navigation.Mode.None };
|
||||
@@ -183,8 +192,8 @@ namespace Ichni.Editor
|
||||
DynamicUISubcontainer subcontainer,
|
||||
string title, string emissionEnabledName, string emissionColorName, string emissionIntensityName)
|
||||
{
|
||||
DynamicUIEmissionColorPicker colorPicker = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.emissionColorPicker, subcontainer.rect)
|
||||
DynamicUIEmissionColorPicker colorPicker = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.emissionColorPicker, subcontainer.rect)
|
||||
.GetComponent<DynamicUIEmissionColorPicker>();
|
||||
colorPicker.Initialize(baseElement, title, emissionEnabledName, emissionColorName, emissionIntensityName);
|
||||
var nav = new Navigation { mode = Navigation.Mode.None };
|
||||
@@ -199,7 +208,7 @@ namespace Ichni.Editor
|
||||
public DynamicUIHintText GenerateHintText(IBaseElement baseElement, DynamicUISubcontainer subcontainer,
|
||||
string content)
|
||||
{
|
||||
DynamicUIHintText hintText = Object.Instantiate(EditorManager.instance.basePrefabs.hintText, subcontainer.rect)
|
||||
DynamicUIHintText hintText = LeanPool.Spawn(EditorManager.instance.basePrefabs.hintText, subcontainer.rect)
|
||||
.GetComponent<DynamicUIHintText>();
|
||||
hintText.Initialize(baseElement, string.Empty, string.Empty);
|
||||
hintText.SetContent(content);
|
||||
@@ -209,7 +218,7 @@ namespace Ichni.Editor
|
||||
|
||||
public DynamicUIHintText GenerateHintText(IBaseElement baseElement, DynamicUISubcontainer subcontainer, Func<string> action)
|
||||
{
|
||||
DynamicUIHintText hintText = Object.Instantiate(EditorManager.instance.basePrefabs.hintText, subcontainer.rect)
|
||||
DynamicUIHintText hintText = LeanPool.Spawn(EditorManager.instance.basePrefabs.hintText, subcontainer.rect)
|
||||
.GetComponent<DynamicUIHintText>();
|
||||
hintText.Initialize(baseElement, string.Empty, string.Empty);
|
||||
hintText.SetUpdatingContent(action);
|
||||
@@ -220,8 +229,8 @@ namespace Ichni.Editor
|
||||
public DynamicUIParameterText GenerateParameterText(IBaseElement baseElement, DynamicUISubcontainer subcontainer,
|
||||
string title, string parameterName, bool isAutoUpdate = false)
|
||||
{
|
||||
DynamicUIParameterText parameterText = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.parameterText, subcontainer.rect)
|
||||
DynamicUIParameterText parameterText = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.parameterText, subcontainer.rect)
|
||||
.GetComponent<DynamicUIParameterText>();
|
||||
parameterText.Initialize(baseElement, title, parameterName);
|
||||
parameterText.SetAutoUpdate(isAutoUpdate);
|
||||
@@ -232,13 +241,12 @@ namespace Ichni.Editor
|
||||
public DynamicUIEnumDropdown GenerateDropdown(IBaseElement baseElement, DynamicUISubcontainer subcontainer,
|
||||
string title, System.Type enumType, string parameterName)
|
||||
{
|
||||
DynamicUIEnumDropdown enumDropdown = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.enumDropdown, subcontainer.rect)
|
||||
DynamicUIEnumDropdown enumDropdown = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.enumDropdown, subcontainer.rect)
|
||||
.GetComponent<DynamicUIEnumDropdown>();
|
||||
enumDropdown.SetUpEnum(enumType);
|
||||
enumDropdown.Initialize(baseElement, title, parameterName);
|
||||
var nav = new Navigation { mode = Navigation.Mode.None };
|
||||
//enumDropdown.dropdownComponent.GetComponent<Button>().navigation = nav;
|
||||
subcontainer.dynamicUIElements.Add(enumDropdown);
|
||||
return enumDropdown;
|
||||
}
|
||||
@@ -246,13 +254,12 @@ namespace Ichni.Editor
|
||||
public DynamicUIStringListDropdown GenerateDropdown(IBaseElement baseElement, DynamicUISubcontainer subcontainer,
|
||||
string title, List<string> stringList, string parameterName)
|
||||
{
|
||||
DynamicUIStringListDropdown stringListDropdown = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.stringListDropdown, subcontainer.rect)
|
||||
DynamicUIStringListDropdown stringListDropdown = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.stringListDropdown, subcontainer.rect)
|
||||
.GetComponent<DynamicUIStringListDropdown>();
|
||||
stringListDropdown.SetUpStringList(stringList);
|
||||
stringListDropdown.Initialize(baseElement, title, parameterName);
|
||||
var nav = new Navigation { mode = Navigation.Mode.None };
|
||||
//stringListDropdown.dropdownComponent.GetComponent<Button>().navigation = nav;
|
||||
subcontainer.dynamicUIElements.Add(stringListDropdown);
|
||||
return stringListDropdown;
|
||||
}
|
||||
@@ -260,8 +267,8 @@ namespace Ichni.Editor
|
||||
// 新增:HSV色盘生成方法
|
||||
public HsvDrawer GenerateHsvDrawer(IBaseElement baseElement, DynamicUISubcontainer subcontainer, string title, string parameterName)
|
||||
{
|
||||
HsvDrawer hsvDrawer = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.hsvDrawer, subcontainer.rect)
|
||||
HsvDrawer hsvDrawer = LeanPool
|
||||
.Spawn(EditorManager.instance.basePrefabs.hsvDrawer, subcontainer.rect)
|
||||
.GetComponent<HsvDrawer>();
|
||||
hsvDrawer.Initialize(baseElement, title, parameterName);
|
||||
subcontainer.dynamicUIElements.Add(hsvDrawer);
|
||||
|
||||
Reference in New Issue
Block a user