Add this attribute to your class to create buttons in the inspector for selected methods. No need for a custom editor.
usingUnityEngine;publicclassExampleClass:MonoBehaviour{publicintExampleInt;publicboolExampleBool;internalvoidExampleInternalMethod(){Debug.Log("Invoking: ExampleClass.ExampleInternalMethod");}publicvoidExamplePublicMethod(){Debug.Log("Invoking: ExampleClass.ExamplePublicMethod");}privatevoidExamplePrivateMethod(){Debug.Log("Invoking: ExampleClass.ExamplePrivateMethod");}protectedvoidExampleProtectedMethod(){Debug.Log("Invoking: ExampleClass.ExampleProtectedMethod");}/* Add these four lines of code to your class. * Edit, add/remove, method names to the attribute. * Names must match the method name passed into the attribute. * * The bool "editorFoldout" is used not only as the property that Unity will use to find the attribute, * but also as the bool for the foldout in the editor. * * The #if UNITY_EDITOR preprocessor directive is so that this code is not compiled into the finished build. * So no need to remvoe it prior to building. */
#if UNITY_EDITOR[MethodButton("ExampleInternalMethod","ExamplePublicMethod","ExamplePrivateMethod","ExampleProtectedMethod")][SerializeField]privatebooleditorFoldout;
#endif
}
