概要
using System.Linq;
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
public static class Example
{
[MenuItem( "Tools/Hoge" )]
public static void Hoge()
{
var assembly = typeof( Editor ).Assembly;
var windowTypeName = "UnityEditor.InspectorWindow";
var windowType = assembly.GetType( windowTypeName );
var inspectorWindow = Resources.FindObjectsOfTypeAll( windowType ).FirstOrDefault() as EditorWindow;
if ( inspectorWindow == null ) return;
inspectorWindow.rootVisualElement.Query().ForEach
(
visualElement =>
{
if ( !visualElement.GetClasses().Contains( "unity-inspector-add-component-button" ) ) return;
var button = new Button( () => Debug.Log( "ピカチュウ" ) )
{
text = "ピカチュウ",
};
visualElement.Add( button );
}
);
}
}