From f049177e20a276049c61edbad631c1b2bbdd5706 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 15 Oct 2020 19:05:22 +0800 Subject: -advanced inspector +odin --- .../Scripts/SerializedNetworkBehaviour.cs | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs (limited to 'Assets/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs') 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 (c) Sirenix IVS. All rights reserved. +// +//----------------------------------------------------------------------- +#if !UNITY_2019_1_OR_NEWER +#pragma warning disable 0618 + +namespace Sirenix.OdinInspector +{ + using Sirenix.Serialization; + using UnityEngine; + using UnityEngine.Networking; + + /// + /// 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. + /// + [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(); + } + + /// + /// Invoked after deserialization has taken place. + /// + protected virtual void OnAfterDeserialize() + { + } + + /// + /// Invoked before serialization has taken place. + /// + 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 -- cgit v1.1-26-g67d0