Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

GlassToeStudio/UnityMethodButtonAttribute

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

Readme

License

MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Stars

Watchers

Forks

Packages

Contributors

Languages