SerializableCallback
UnityEvent and System.Func had a child
Install / Use
/learn @Siccity/SerializableCallbackREADME
SerializableCallback
Lets you drag-and-drop methods with or without return values / parameters in the Unity inspector. It uses expression trees and reflection to cache a delegate on first execution.
Usage is identical to UnityEvent

public class MyClass : MonoBehaviour {
//These fields are shown in the inspector
public SerializableCallback callback; // supports all non-void return types
public Condition condition; // supports bool return types only
public GetProduct getProduct; // supports MyProduct return types only
void Start() {
// Callbacks can be invoked with or without parameters, and with different types
Debug.Log(callback.Invoke()); // returns object
Debug.Log(condition.Invoke()); // returns bool
Debug.Log(getProduct.Invoke(2)); // returns MyProduct
}
// As with UnityEvents, custom callbacks must have a non-generic wrapper class marked as [Serializable] in order to be serialized by Unity
[Serializable]
public class Condition : SerializableCallback<bool> {}
// Last generic type parameter is the return type, staying consistent with System.Func
[Serializable]
public class GetProduct : SerializableCallback<int, MyProduct> {}
}
| Performance (100000 iterations) | Time | | -------------------------------------------- | --------- | | bool Method(float) | 00.00304s | | SerializedCallback<float, bool> (Persistent) | 00.01026s | | SerializedCallback<float, bool> (Dynamic) | 00.00797s |
Installing with Unity Package Manager
To install this project as a dependency using the Unity Package Manager,
add the following line to your project's manifest.json:
"com.github.siccity.serializablecallback": "git+https://github.com/Siccity/SerializableCallback.git"
Join the Discord server to leave feedback or get support.
Related Skills
node-connect
354.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
