Skip to content

Add this attribute to your class to create buttons in the inspector for selected methods. No need for a custom editor.

License

Notifications You must be signed in to change notification settings

GlassToeStudio/UnityMethodButtonAttribute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity MethodButton Attribute

Add this attribute to your class to create buttons in the inspector for selected methods. No need for a custom editor.


Usage:

using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    public int ExampleInt;
    public bool ExampleBool;

    internal void ExampleInternalMethod()
    {
        Debug.Log("Invoking: ExampleClass.ExampleInternalMethod");
    }
    public void ExamplePublicMethod()
    {
        Debug.Log("Invoking: ExampleClass.ExamplePublicMethod");
    }
    private void ExamplePrivateMethod()
    {
        Debug.Log("Invoking: ExampleClass.ExamplePrivateMethod");
    }
    protected void ExampleProtectedMethod()
    {
        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] private bool editorFoldout;
#endif
}


About

Add this attribute to your class to create buttons in the inspector for selected methods. No need for a custom editor.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages