Inspector Secondary Window & QuickCopy
inspector的二级界面,主要用于工具制作。 重新制作了Track的QuickCopy功能
This commit is contained in:
189
Assets/Scripts/DynamicUI/Inspector/IHaveInspection.cs
Normal file
189
Assets/Scripts/DynamicUI/Inspector/IHaveInspection.cs
Normal file
@@ -0,0 +1,189 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni;
|
||||
using Ichni.Editor;
|
||||
using Ichni.RhythmGame;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
public interface IHaveInspection
|
||||
{
|
||||
public RectTransform WindowRect { get; set; }
|
||||
public List<DynamicUIContainer> Containers { get; set; }
|
||||
|
||||
public CompositeParameterWindow GenerateCompositeParameterWindow(IBaseElement baseElement, string title,
|
||||
string parameterName)
|
||||
{
|
||||
CompositeParameterWindow compositeParameterWindow =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.compositeParameterWindow,
|
||||
EditorManager.instance.uiManager.inspector.inspectorCanvas.GetComponent<RectTransform>())
|
||||
.GetComponent<CompositeParameterWindow>();
|
||||
compositeParameterWindow.Initialize(baseElement, title, parameterName);
|
||||
return compositeParameterWindow;
|
||||
}
|
||||
|
||||
public DynamicUIContainer GenerateContainer(string title)
|
||||
{
|
||||
DynamicUIContainer container =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
|
||||
.GetComponent<DynamicUIContainer>();
|
||||
container.title.text = title;
|
||||
Containers.Add(container);
|
||||
return container;
|
||||
}
|
||||
|
||||
public DynamicUIContainer GenerateContainer()
|
||||
{
|
||||
DynamicUIContainer container =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.dynamicUIContainer, WindowRect)
|
||||
.GetComponent<DynamicUIContainer>();
|
||||
Object.Destroy(container.title.gameObject);
|
||||
Containers.Add(container);
|
||||
return container;
|
||||
}
|
||||
|
||||
public DynamicUIButton GenerateButton(IBaseElement baseElement, DynamicUIContainer container, string buttonText,
|
||||
UnityAction function, string title = "null")
|
||||
{
|
||||
DynamicUIButton button = Object.Instantiate(EditorManager.instance.basePrefabs.button, container.rect)
|
||||
.GetComponent<DynamicUIButton>();
|
||||
button.SetText(buttonText, title != "null");
|
||||
button.Initialize(baseElement, title, "null");
|
||||
button.ApplyFunction(function);
|
||||
container.dynamicUIElements.Add(button);
|
||||
return button;
|
||||
}
|
||||
|
||||
public DynamicUIToggle GenerateToggle(IBaseElement baseElement, DynamicUIContainer container, string title,
|
||||
string parameterName)
|
||||
{
|
||||
DynamicUIToggle toggle = Object.Instantiate(EditorManager.instance.basePrefabs.toggle, container.rect)
|
||||
.GetComponent<DynamicUIToggle>();
|
||||
toggle.Initialize(baseElement, title, parameterName);
|
||||
container.dynamicUIElements.Add(toggle);
|
||||
return toggle;
|
||||
}
|
||||
|
||||
public DynamicUIGetterInputField GenerateGetterInputField(DynamicUIContainer container,
|
||||
string title, string defaultText)
|
||||
{
|
||||
DynamicUIGetterInputField getterInputField = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.getterInputField, container.rect)
|
||||
.GetComponent<DynamicUIGetterInputField>();
|
||||
getterInputField.Initialize(null, title, string.Empty);
|
||||
getterInputField.SetDefaultText(defaultText);
|
||||
container.dynamicUIElements.Add(getterInputField);
|
||||
return getterInputField;
|
||||
}
|
||||
|
||||
public DynamicUIParameterInputField GenerateParameterInputField(IBaseElement baseElement,
|
||||
DynamicUIContainer container,
|
||||
string title, string parameterName)
|
||||
{
|
||||
DynamicUIParameterInputField parameterInputField = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.parameterInputField, container.rect)
|
||||
.GetComponent<DynamicUIParameterInputField>();
|
||||
parameterInputField.Initialize(baseElement, title, parameterName);
|
||||
container.dynamicUIElements.Add(parameterInputField);
|
||||
return parameterInputField;
|
||||
}
|
||||
|
||||
public DynamicUIVector3InputField GenerateVector3InputField(IBaseElement baseElement,
|
||||
DynamicUIContainer container,
|
||||
string title, string parameterName)
|
||||
{
|
||||
DynamicUIVector3InputField vector3InputField =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.vector3InputField, container.rect)
|
||||
.GetComponent<DynamicUIVector3InputField>();
|
||||
vector3InputField.Initialize(baseElement, title, parameterName);
|
||||
container.dynamicUIElements.Add(vector3InputField);
|
||||
return vector3InputField;
|
||||
}
|
||||
|
||||
public DynamicUIBaseColorPicker GenerateBaseColorPicker(IBaseElement baseElement, DynamicUIContainer container,
|
||||
string title, string parameterName)
|
||||
{
|
||||
DynamicUIBaseColorPicker colorPicker = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.baseColorPicker, container.rect)
|
||||
.GetComponent<DynamicUIBaseColorPicker>();
|
||||
colorPicker.Initialize(baseElement, title, parameterName);
|
||||
container.dynamicUIElements.Add(colorPicker);
|
||||
return colorPicker;
|
||||
}
|
||||
|
||||
public DynamicUIEmissionColorPicker GenerateEmissionColorPicker(IBaseElement baseElement,
|
||||
DynamicUIContainer container,
|
||||
string title, string emissionEnabledName, string emissionColorName, string emissionIntensityName)
|
||||
{
|
||||
DynamicUIEmissionColorPicker colorPicker = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.emissionColorPicker, container.rect)
|
||||
.GetComponent<DynamicUIEmissionColorPicker>();
|
||||
colorPicker.Initialize(baseElement, title, emissionEnabledName, emissionColorName, emissionIntensityName);
|
||||
container.dynamicUIElements.Add(colorPicker);
|
||||
return colorPicker;
|
||||
}
|
||||
|
||||
public DynamicUIHintText GenerateHintText(IBaseElement baseElement, DynamicUIContainer container,
|
||||
string content)
|
||||
{
|
||||
DynamicUIHintText hintText = Object.Instantiate(EditorManager.instance.basePrefabs.hintText, container.rect)
|
||||
.GetComponent<DynamicUIHintText>();
|
||||
hintText.Initialize(baseElement, string.Empty, string.Empty);
|
||||
hintText.SetContent(content);
|
||||
container.dynamicUIElements.Add(hintText);
|
||||
return hintText;
|
||||
}
|
||||
|
||||
public DynamicUIHintText GenerateHintText(IBaseElement baseElement, DynamicUIContainer container,
|
||||
System.Func<string> action)
|
||||
{
|
||||
DynamicUIHintText hintText = Object.Instantiate(EditorManager.instance.basePrefabs.hintText, container.rect)
|
||||
.GetComponent<DynamicUIHintText>();
|
||||
hintText.Initialize(baseElement, string.Empty, string.Empty);
|
||||
hintText.SetUpdatingContent(action);
|
||||
container.dynamicUIElements.Add(hintText);
|
||||
return hintText;
|
||||
}
|
||||
|
||||
public DynamicUIParameterText GenerateParameterText(IBaseElement baseElement, DynamicUIContainer container,
|
||||
string title,
|
||||
string parameterName, bool isAlwaysUpdate = false)
|
||||
{
|
||||
DynamicUIParameterText parameterText = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.parameterText, container.rect)
|
||||
.GetComponent<DynamicUIParameterText>();
|
||||
parameterText.Initialize(baseElement, title, parameterName);
|
||||
parameterText.isAlwaysUpdated = isAlwaysUpdate;
|
||||
container.dynamicUIElements.Add(parameterText);
|
||||
return parameterText;
|
||||
}
|
||||
|
||||
public DynamicUIEnumDropdown GenerateDropdown(IBaseElement baseElement, DynamicUIContainer container,
|
||||
string title,
|
||||
System.Type enumType, string parameterName)
|
||||
{
|
||||
DynamicUIEnumDropdown enumDropdown = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.enumDropdown, container.rect)
|
||||
.GetComponent<DynamicUIEnumDropdown>();
|
||||
enumDropdown.SetUpEnum(enumType);
|
||||
enumDropdown.Initialize(baseElement, title, parameterName);
|
||||
container.dynamicUIElements.Add(enumDropdown);
|
||||
return enumDropdown;
|
||||
}
|
||||
|
||||
public DynamicUIStringListDropdown GenerateDropdown(IBaseElement baseElement, DynamicUIContainer container,
|
||||
string title,
|
||||
List<string> stringList, string parameterName)
|
||||
{
|
||||
DynamicUIStringListDropdown stringListDropdown = Object
|
||||
.Instantiate(EditorManager.instance.basePrefabs.stringListDropdown, container.rect)
|
||||
.GetComponent<DynamicUIStringListDropdown>();
|
||||
stringListDropdown.SetUpStringList(stringList);
|
||||
stringListDropdown.Initialize(baseElement, title, parameterName);
|
||||
container.dynamicUIElements.Add(stringListDropdown);
|
||||
return stringListDropdown;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user