Skip to content

Commit 9d6e728

Browse files
authored
UNITY_2020_1 SerializableCallback generic serialization
Changed SerializableCallback classes for UNITY_2020_1 generic serialization feature. Like: [SerializeField] SerializableCallback<bool> myField; (Siccity#25 fork source pull request)
1 parent 81b7f32 commit 9d6e728

File tree

1 file changed

+35
-5
lines changed

1 file changed

+35
-5
lines changed

Runtime/SerializableCallback.cs

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
using System.Reflection;
44
using UnityEngine;
55

6-
public abstract class SerializableCallback<TReturn> : SerializableCallbackBase<TReturn> {
6+
#if UNITY_2020_1_OR_NEWER
7+
[System.Serializable]
8+
public class SerializableCallback<TReturn> : SerializableCallbackBase<TReturn>
9+
#else
10+
public class abstract SerializableCallback<TReturn> : SerializableCallbackBase<TReturn>
11+
#endif
12+
{
713
public TReturn Invoke() {
814
if (func == null) Cache();
915
if (_dynamic) {
@@ -27,7 +33,13 @@ protected override void Cache() {
2733
}
2834
}
2935

30-
public abstract class SerializableCallback<T0, TReturn> : SerializableCallbackBase<TReturn> {
36+
#if UNITY_2020_1_OR_NEWER
37+
[System.Serializable]
38+
public class SerializableCallback<T0, TReturn> : SerializableCallbackBase<TReturn>
39+
#else
40+
public abstract class SerializableCallback<T0, TReturn> : SerializableCallbackBase<TReturn>
41+
#endif
42+
{
3143
public TReturn Invoke(T0 arg0) {
3244
if (func == null) Cache();
3345
if (_dynamic) {
@@ -51,7 +63,13 @@ protected override void Cache() {
5163
}
5264
}
5365

66+
#if UNITY_2020_1_OR_NEWER
67+
[System.Serializable]
68+
public class SerializableCallback<T0, T1, TReturn> : SerializableCallbackBase<TReturn>
69+
#else
5470
public abstract class SerializableCallback<T0, T1, TReturn> : SerializableCallbackBase<TReturn> {
71+
#endif
72+
{
5573
public TReturn Invoke(T0 arg0, T1 arg1) {
5674
if (func == null) Cache();
5775
if (_dynamic) {
@@ -75,7 +93,13 @@ protected override void Cache() {
7593
}
7694
}
7795

78-
public abstract class SerializableCallback<T0, T1, T2, TReturn> : SerializableCallbackBase<TReturn> {
96+
#if UNITY_2020_1_OR_NEWER
97+
[System.Serializable]
98+
public class SerializableCallback<T0, T1, T2, TReturn> : SerializableCallbackBase<TReturn>
99+
#else
100+
public abstract class SerializableCallback<T0, T1, T2, TReturn> : SerializableCallbackBase<TReturn>
101+
#endif
102+
{
79103
public TReturn Invoke(T0 arg0, T1 arg1, T2 arg2) {
80104
if (func == null) Cache();
81105
if (_dynamic) {
@@ -99,7 +123,13 @@ protected override void Cache() {
99123
}
100124
}
101125

102-
public abstract class SerializableCallback<T0, T1, T2, T3, TReturn> : SerializableCallbackBase<TReturn> {
126+
#if UNITY_2020_1_OR_NEWER
127+
[System.Serializable]
128+
public class SerializableCallback<T0, T1, T2, T3, TReturn> : SerializableCallbackBase<TReturn>
129+
#else
130+
public abstract class SerializableCallback<T0, T1, T2, T3, TReturn> : SerializableCallbackBase<TReturn>
131+
#endif
132+
{
103133
public TReturn Invoke(T0 arg0, T1 arg1, T2 arg2, T3 arg3) {
104134
if (func == null) Cache();
105135
if (_dynamic) {
@@ -121,4 +151,4 @@ protected override void Cache() {
121151
}
122152
}
123153
}
124-
}
154+
}

0 commit comments

Comments
 (0)