mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-01-06 14:45:06 +08:00
8d3da50b37
* chore: migrate Scale Adjuster to NDMF preview system * feat: MA Shape Changer * chore: update NDMF dependency * fix: unit test failure
52 lines
1.5 KiB
C#
52 lines
1.5 KiB
C#
#region
|
|
|
|
using System;
|
|
using UnityEditor;
|
|
using UnityEditor.UIElements;
|
|
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
using static System.Reflection.BindingFlags;
|
|
using PopupWindow = UnityEditor.PopupWindow;
|
|
|
|
#endregion
|
|
|
|
namespace nadena.dev.modular_avatar.core.editor.ShapeChanger
|
|
{
|
|
[CustomEditor(typeof(ModularAvatarShapeChanger))]
|
|
public class ShapeChangerEditor : MAEditorBase
|
|
{
|
|
[SerializeField] private StyleSheet uss;
|
|
[SerializeField] private VisualTreeAsset uxml;
|
|
|
|
|
|
protected override void OnInnerInspectorGUI()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
protected override VisualElement CreateInnerInspectorGUI()
|
|
{
|
|
var root = uxml.CloneTree();
|
|
Localization.UI.Localize(root);
|
|
root.styleSheets.Add(uss);
|
|
|
|
root.Bind(serializedObject);
|
|
|
|
var listView = root.Q<ListView>("Shapes");
|
|
|
|
listView.showBoundCollectionSize = false;
|
|
listView.virtualizationMethod = CollectionVirtualizationMethod.DynamicHeight;
|
|
|
|
// The Add button callback isn't exposed publicly for some reason...
|
|
var field_addButton = typeof(BaseListView).GetField("m_AddButton", NonPublic | Instance);
|
|
var addButton = (Button)field_addButton.GetValue(listView);
|
|
|
|
addButton.clickable = new Clickable(() =>
|
|
{
|
|
PopupWindow.Show(addButton.worldBound, new AddShapePopup(target as ModularAvatarShapeChanger));
|
|
});
|
|
|
|
return root;
|
|
}
|
|
}
|
|
} |