From a9140e4fc3e991fd9a27d513d8d32217ebd58014 Mon Sep 17 00:00:00 2001 From: medvedya Date: Wed, 21 Apr 2021 18:28:57 +0300 Subject: [PATCH] UNITY_2020_1 SerializableCallback generic serialization Changed SerializableCallback classes for UNITY_2020_1 generic serialization feature. Like: [SerializeField] SerializableCallback myField; --- Runtime/SerializableCallback.cs | 44 +++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/Runtime/SerializableCallback.cs b/Runtime/SerializableCallback.cs index e58fa3b..fe1adeb 100644 --- a/Runtime/SerializableCallback.cs +++ b/Runtime/SerializableCallback.cs @@ -3,7 +3,13 @@ using System.Reflection; using UnityEngine; -public abstract class SerializableCallback : SerializableCallbackBase { +#if UNITY_2020_1_OR_NEWER +[System.Serializable] +public class SerializableCallback : SerializableCallbackBase +#else +public class abstract SerializableCallback : SerializableCallbackBase +#endif +{ public TReturn Invoke() { if (func == null) Cache(); if (_dynamic) { @@ -27,7 +33,14 @@ protected override void Cache() { } } -public abstract class SerializableCallback : SerializableCallbackBase { + +#if UNITY_2020_1_OR_NEWER +[System.Serializable] +public class SerializableCallback : SerializableCallbackBase +#else +public abstract class SerializableCallback : SerializableCallbackBase +#endif +{ public TReturn Invoke(T0 arg0) { if (func == null) Cache(); if (_dynamic) { @@ -51,7 +64,14 @@ protected override void Cache() { } } + +#if UNITY_2020_1_OR_NEWER +[System.Serializable] +public class SerializableCallback : SerializableCallbackBase +#else public abstract class SerializableCallback : SerializableCallbackBase { +#endif +{ public TReturn Invoke(T0 arg0, T1 arg1) { if (func == null) Cache(); if (_dynamic) { @@ -75,7 +95,14 @@ protected override void Cache() { } } -public abstract class SerializableCallback : SerializableCallbackBase { + +#if UNITY_2020_1_OR_NEWER +[System.Serializable] +public class SerializableCallback : SerializableCallbackBase +#else +public abstract class SerializableCallback : SerializableCallbackBase +#endif +{ public TReturn Invoke(T0 arg0, T1 arg1, T2 arg2) { if (func == null) Cache(); if (_dynamic) { @@ -99,7 +126,14 @@ protected override void Cache() { } } -public abstract class SerializableCallback : SerializableCallbackBase { + +#if UNITY_2020_1_OR_NEWER +[System.Serializable] +public class SerializableCallback : SerializableCallbackBase +#else +public abstract class SerializableCallback : SerializableCallbackBase +#endif +{ public TReturn Invoke(T0 arg0, T1 arg1, T2 arg2, T3 arg3) { if (func == null) Cache(); if (_dynamic) { @@ -121,4 +155,4 @@ protected override void Cache() { } } } -} \ No newline at end of file +}