diff options
author | chai <chaifix@163.com> | 2020-10-15 19:05:22 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-15 19:05:22 +0800 |
commit | f049177e20a276049c61edbad631c1b2bbdd5706 (patch) | |
tree | 7d1a1cd9b690a5d9a8b9a65554a191d6ec769601 /Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs | |
parent | 6990a0d1fbdcbbf404f40713363ac1a148c8840a (diff) |
-advanced inspector
+odin
Diffstat (limited to 'Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs')
-rw-r--r-- | Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs b/Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs new file mode 100644 index 00000000..7362d62e --- /dev/null +++ b/Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs @@ -0,0 +1,66 @@ +//-----------------------------------------------------------------------
+// <copyright file="SerializedNetworkBehaviour.cs" company="Sirenix IVS">
+// Copyright (c) Sirenix IVS. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+#if !UNITY_2019_1_OR_NEWER
+#pragma warning disable 0618
+
+namespace Sirenix.OdinInspector
+{
+ using Sirenix.Serialization;
+ using UnityEngine;
+ using UnityEngine.Networking;
+
+ /// <summary>
+ /// A Unity NetworkBehaviour which is serialized by the Sirenix serialization system.
+ /// Please note that Odin's custom serialization only works for non-synced variables - [SyncVar] and SyncLists still have the same limitations.
+ /// </summary>
+ [ShowOdinSerializedPropertiesInInspector]
+ public abstract class SerializedNetworkBehaviour : NetworkBehaviour, ISerializationCallbackReceiver, ISupportsPrefabSerialization
+ {
+ [SerializeField, HideInInspector]
+ private SerializationData serializationData;
+
+ SerializationData ISupportsPrefabSerialization.SerializationData { get { return this.serializationData; } set { this.serializationData = value; } }
+
+ void ISerializationCallbackReceiver.OnAfterDeserialize()
+ {
+ UnitySerializationUtility.DeserializeUnityObject(this, ref this.serializationData);
+ this.OnAfterDeserialize();
+ }
+
+ void ISerializationCallbackReceiver.OnBeforeSerialize()
+ {
+ UnitySerializationUtility.SerializeUnityObject(this, ref this.serializationData);
+ this.OnBeforeSerialize();
+ }
+
+ /// <summary>
+ /// Invoked after deserialization has taken place.
+ /// </summary>
+ protected virtual void OnAfterDeserialize()
+ {
+ }
+
+ /// <summary>
+ /// Invoked before serialization has taken place.
+ /// </summary>
+ protected virtual void OnBeforeSerialize()
+ {
+ }
+
+#if UNITY_EDITOR
+
+ [HideInTables]
+ [OnInspectorGUI, PropertyOrder(int.MinValue)]
+ private void InternalOnInspectorGUI()
+ {
+ EditorOnlyModeConfigUtility.InternalOnInspectorGUI(this);
+ }
+
+#endif
+ }
+}
+
+#endif // UNITY_2019_1_OR_NEWER
\ No newline at end of file |