Serializable Delegates has now been released and available for purchase! As of this writing, Serializable Delegates is still waiting for approval from the Asset Store so you can only get it here!
Serializable Delegates is a Unity3D asset that includes the SerializableAction, SerializableFunction, SerializableEvent, and DynamicObject set of classes.
The SerializableDelegate classes allow method calls to be serialized in the Unity3D inspector. This allows components to be decoupled and allows greater level design flexibility for level designers without them having to reach out to the programmers as much.
All SerializableDelegate classes can invoke fields, properties, or methods on any UnityEngine.Object with:
- Vector2, 3, 4, Quaternion, and Color parameters as well as all types already supported by UnityEvent (UnityEngine.Object, string, bool, int, and float)
- Enum parameters
- up to 4 parameters
- optional parameters
- parameters where the types match the generic argument types of the SerializableDelegate class
SerializableAction binds to methods with a return type of void, or settable fields and properties.
SerializableFunction binds to methods where the return type matches the first generic argument, or fields and properties of the same type as the generic argument.
SerializableEvent is probably the most interesting and powerful class of all the classes included in the package. It is a direct replacement for UnityEvent. It can do everything SerializableAction and UnityEvent can, plus:
- Easy drag & drop to reorder (with Rotorz)
- Insert, move, duplicate, or remove subscribers through the context menu
- Exposed runtime subscribers in the inspector, allowing for easier debugging
- Clean and polished interface with numbered elements and labeled arguments
Anyway, enough explanations! Have a look at the screenshots and see for yourself!
Click here to get the latest up-to-date info on Serializable Delegates and purchase it.