madsbangh/EasyButtons
madsbangh/EasyButtons has 1,202 GitHub stars and 88 forks. GitHot measured +1 in 7 days. Last checked 2026-11-10 22:08 UTC. Last push 2023-09-14.
Add buttons to your inspector in Unity super easily with this simple attribute
Measured star growth
- in 24h
- Update delayed
- in 7 days
- +1
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalEasy buttons for the Unity default inspector
These tiny scripts add the ability to quickly show a button in the inspector for any method.
Installation
OpenUPM
Once you have the OpenUPM cli, run the following command:
openupm install com.madsbangh.easybuttons
Or if you don't have it, add the scoped registry to manifest.json with the desired version:
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"com.madsbangh.easybuttons",
"com.openupm"
]
}
],
"dependencies": {
"com.madsbangh.easybuttons": "1.4.0"
}
Git URL
Project supports Unity Package Manager. To install the project as a Git package do the following:
- In Unity, open Window -> Package Manager.
- Press the + button, choose "Add package from git URL..."
- Enter "https://github.com/madsbangh/EasyButtons.git#upm" and press Add.
Unity Package
Alternatively, you can add the code directly to the project:
- Clone the repo or download the latest release.
- Add the EasyButtons folder to your Unity project or import the .unitypackage
How To Use
Add the Button attribute to a method.
using EasyButtons; // 1. Import the namespace using UnityEngine; public class ButtonsExample : MonoBehaviour { // 2. Add the Button attribute to any method. [Button] public void SayHello() { Debug.Log("Hello"); } }You should now see a button at the top of the component with the same name as the method:


Add the Button attribute to a method with parameters.
using EasyButtons; using UnityEngine; public class Test : MonoBehaviour { [Button] public void ButtonWithParameters(string message, int number) { Debug.Log($"Your message #{number}: '{message}'"); } }You can now enter parameter values and invoke the method in the inspector:

Attribute Options
The Button attribute has different options that allow customizing the button look.
Mode - indicates when the button is enabled. You can choose between the following options:
AlwaysEnabled - the button is enabled in edit mode and play mode.
EnabledInPlayMode - the button is only enabled in play mode.
DisabledInPlayMode - the button is only enabled in edit mode.
Spacing - allows to have some space before or after the button. The following options can be used:
None - no spacing at all.
Before - adds space above the button.
After - adds space below the button.
Expanded - whether to expand the parameters foldout by default. It only works with buttons that have parameters.
Custom Editors
If you want to show buttons in a custom editor, you can use the ButtonsDrawer class defined in EasyButtons.Editor.
Instantiate ButtonsDrawer in OnEnable if possible, then draw the buttons with help of the DrawButtons method, as in the example:
[CustomEditor(typeof(Example))]
public class CustomEditor : ObjectEditor
{
private ButtonsDrawer _buttonsDrawer;
private void OnEnable()
{
_buttonsDrawer = new ButtonsDrawer(target);
}
public override void OnInspectorGUI()
{
DrawDefaultInspector();
_buttonsDrawer.DrawButtons(targets);
}
}
You can also draw only specific buttons:
// Draw only the button called "Custom Editor Example"
_buttonsDrawers.Buttons.First(button => button.DisplayName == "Custom Editor Example").Draw(targets);
You can search for a specific button using its DisplayName or Method (MethodInfo object the button is attached to.)
Notes
- Older versions of Unity might not understand the reference to EasyButtons runtime in the EasyButtons editor assembly definition. If you experience issues, you can re-add the reference, or remove the asmdefs completely.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,618 starspublic-apis/public-apis
A collective list of free APIs
497,948 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
450,074 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,304 stars