Awesome
Unity Event Drawer Extension <!-- omit in toc -->
<< 📝 Description | 📌 Key Features | ⚙ Installation | 🚀 Getting Started | 🤝 Contributing >>
📝 Description <!-- omit in toc -->
This package extends the UnityEventDrawer
to display runtime calls in the inspector.
What is "runtime calls"?
Button.onClick and Toggle.OnChangeValue etc. are known as UnityEvent.
UnityEvent has two types of callbacks:
- Persistent call
- You can add callbacks from the inspector.
- You can add callbacks from a script using UnityEventTools.AddPersistentListener.
- It will be serialized and displayed in the inspector.
- Runtime call
- You can add a callback from a script with UnityEvent.AddListener.
- It will be not serialized and displayed in the inspector.
Display your runtime calls
This package extends UnityEventDrawer to display runtime calls in the inspector.
If the runtime call is an instance method, its target is also displayed.
This plugin supports all events that inherit UnityEvent<T0> - UnityEvent<T0, T1, T2, T3>
as well as UnityEvent.
Even if the persistent call is empty, UnityEvent is displayed compactly in the inspector.
public class TestBehavior : MonoBehaviour
{
[System.Serializable] public class TransformUnityEvent : UnityEngine.Events.UnityEvent<Transform>{};
[SerializeField] TransformUnityEvent onYourCustomEvent = new TransformUnityEvent();
void OnEnable()
{
onYourCustomEvent.AddListener(TestTransform);
}
void TestTransform(Transform t)
{
Debug.Log("TestTransform has called : " + t);
}
}
If you like a style of development that makes heavy use of runtime calls (MVP pattern, etc.), this package is for you!
<br><br>
<br><br>
📌 Key Features
- Displays runtime calls in inspector
- Expands/collapses the runtime call view
- Displays instance method, its target is also displayed
- If the persistent call is empty, displays it compactly
- Supports dark skin
- Supports all components as well as uGUI components like
Button
andToggle
- Supports
EventTrigger
<br><br>
⚙ Installation
Install via OpenUPM
- This package is available on OpenUPM package registry.
- This is the preferred method of installation, as you can easily receive updates as they're released.
- If you have openupm-cli installed, then run the following command in your project's directory:
openupm add com.coffee.event-drawer-ex
- To update the package, use Package Manager UI (
Window > Package Manager
) or run the following command with@{version}
:openupm add com.coffee.event-drawer-ex@1.1.0
Install via UPM (with Package Manager UI)
- Click
Window > Package Manager
to open Package Manager UI. - Click
+ > Add package from git URL...
and input the repository URL:https://github.com/mob-sakai/UnityEventDrawerEx.git
- To update the package, change suffix
#{version}
to the target version.- e.g.
https://github.com/mob-sakai/UnityEventDrawerEx.git#1.1.0
- e.g.
Install via UPM (Manually)
-
Open the
Packages/manifest.json
file in your project. Then add this package somewhere in thedependencies
block:{ "dependencies": { "com.coffee.event-drawer-ex": "https://github.com/mob-sakai/UnityEventDrawerEx.git", ... } }
-
To update the package, change suffix
#{version}
to the target version.- e.g.
"com.coffee.event-drawer-ex": "https://github.com/mob-sakai/UnityEventDrawerEx.git#1.1.0",
- e.g.
Install as Embedded Package
- Download a source code zip file from Releases and extract it.
- Place it in your project's
Packages
directory.
- If you want to fix bugs or add features, install it as an embedded package.
- To update the package, you need to re-download it and replace the contents.
<br><br>
🚀 Getting Started
-
Add a runtime call, such as
Button.onClick.AddListener (method)
. -
Information about the runtime call is displayed in the inspector.
-
Enjoy!
<br><br>
🤝 Contributing
Issues
Issues are incredibly valuable to this project:
- Ideas provide a valuable source of contributions that others can make.
- Problems help identify areas where this project needs improvement.
- Questions indicate where contributors can enhance the user experience.
Pull Requests
Pull requests offer a fantastic way to contribute your ideas to this repository.
Please refer to CONTRIBUTING.md
and develop branch for guidelines.
Support
This is an open-source project developed during my spare time.
If you appreciate it, consider supporting me.
Your support allows me to dedicate more time to development. 😊
<br><br>
License
- MIT
Author
See Also
- GitHub page : https://github.com/mob-sakai/UnityEventDrawerEx
- Releases : https://github.com/mob-sakai/UnityEventDrawerEx/releases
- Issue tracker : https://github.com/mob-sakai/UnityEventDrawerEx/issues
- Change log : https://github.com/mob-sakai/UnityEventDrawerEx/blob/main/CHANGELOG.md