https://github.com/mob-sakai/UnityEventDrawerEx
This plugin extends the UnityEventDrawer to display runtime calls in the inspector.
https://github.com/mob-sakai/UnityEventDrawerEx
editor-extension extensions inspector unity unity-editor unity3d
Last synced: 5 months ago
JSON representation
This plugin extends the UnityEventDrawer to display runtime calls in the inspector.
- Host: GitHub
- URL: https://github.com/mob-sakai/UnityEventDrawerEx
- Owner: mob-sakai
- License: mit
- Created: 2018-06-03T15:23:56.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-07-22T03:33:28.000Z (about 1 year ago)
- Last Synced: 2024-10-30T00:04:19.617Z (11 months ago)
- Topics: editor-extension, extensions, inspector, unity, unity-editor, unity3d
- Language: C#
- Size: 119 KB
- Stars: 94
- Watchers: 6
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-unity-open-source-on-github - UnityEventDrawerEx - This plugin extends the UnityEventDrawer to display runtime calls in the inspector (Inspector)
README
# Unity Event Drawer Extension
[](https://openupm.com/packages/com.coffee.event-drawer-ex/)
[](https://github.com/mob-sakai/UnityEventDrawerEx/releases)
[](https://github.com/mob-sakai/UnityEventDrawerEx/releases)

[](https://github.com/mob-sakai/UnityEventDrawerEx/blob/main/LICENSE.txt)
[](http://makeapullrequest.com)
[](https://github.com/mob-sakai/UnityEventDrawerEx/subscription)
[](https://twitter.com/intent/follow?screen_name=mob_sakai)<< [📝 Description](#-description-) | [📌 Key Features](#-key-features) | [⚙ Installation](#-installation) | [🚀 Getting Started](#-getting-started) | [🤝 Contributing](#-contributing) >>
## 📝 Description

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](https://docs.unity3d.com/ScriptReference/Events.UnityEvent.html).
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 - UnityEvent` as well as *UnityEvent*.
Even if the persistent call is empty, *UnityEvent* is displayed compactly in the inspector.```cs
public class TestBehavior : MonoBehaviour
{
[System.Serializable] public class TransformUnityEvent : UnityEngine.Events.UnityEvent{};[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!
- [📌 Key Features](#-key-features)
- [⚙ Installation](#-installation)
- [Install via OpenUPM](#install-via-openupm)
- [Install via UPM (with Package Manager UI)](#install-via-upm-with-package-manager-ui)
- [Install via UPM (Manually)](#install-via-upm-manually)
- [Install as Embedded Package](#install-as-embedded-package)
- [🚀 Getting Started](#-getting-started)
- [🤝 Contributing](#-contributing)
- [Issues](#issues)
- [Pull Requests](#pull-requests)
- [Support](#support)
- [License](#license)
- [Author](#author)
- [See Also](#see-also)
## 📌 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` and `Toggle`

* Supports `EventTrigger`

## ⚙ Installation
### Install via OpenUPM
- This package is available on [OpenUPM](https://openupm.com) package registry.
- This is the preferred method of installation, as you can easily receive updates as they're released.
- If you have [openupm-cli](https://github.com/openupm/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`### Install via UPM (Manually)
- Open the `Packages/manifest.json` file in your project. Then add this package somewhere in the `dependencies` block:
```json
{
"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",`### Install as Embedded Package
1. Download a source code zip file from [Releases](https://github.com/mob-sakai/UnityEventDrawerEx/releases) and extract it.
2. 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.
## 🚀 Getting Started
1. [Install the package](#-installation).
2. Add a runtime call, such as `Button.onClick.AddListener (method)`.
3. Information about the runtime call is displayed in the inspector.
4. Enjoy!
## 🤝 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](https://github.com/mob-sakai/UnityEventDrawerEx/tree/main/CONTRIBUTING.md)
and [develop branch](https://github.com/mob-sakai/UnityEventDrawerEx/tree/develop) 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. 😊[](https://www.patreon.com/join/2343451?)
[](https://github.com/users/mob-sakai/sponsorship)
## License
* MIT
## Author
*  [mob-sakai](https://github.com/mob-sakai) [](https://twitter.com/intent/follow?screen_name=mob_sakai) 
## 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