A game about forced loneliness, made by TACStudios
at master 1.6 kB view raw
1using System; 2using UnityEngine; 3 4namespace UnityEditor.ShaderGraph 5{ 6 [Serializable] 7 class SerializableMesh : ISerializationCallbackReceiver 8 { 9 [SerializeField] 10 string m_SerializedMesh; 11 12 [SerializeField] 13 string m_Guid; 14 15 [NonSerialized] 16 Mesh m_Mesh; 17 18 [Serializable] 19 class MeshHelper 20 { 21#pragma warning disable 649 22 public Mesh mesh; 23#pragma warning restore 649 24 } 25 26 public Mesh mesh 27 { 28 get 29 { 30 if (!string.IsNullOrEmpty(m_SerializedMesh)) 31 { 32 var textureHelper = new MeshHelper(); 33 EditorJsonUtility.FromJsonOverwrite(m_SerializedMesh, textureHelper); 34 m_SerializedMesh = null; 35 m_Guid = null; 36 m_Mesh = textureHelper.mesh; 37 } 38 else if (!string.IsNullOrEmpty(m_Guid) && m_Mesh == null) 39 { 40 m_Mesh = AssetDatabase.LoadAssetAtPath<Mesh>(AssetDatabase.GUIDToAssetPath(m_Guid)); 41 m_Guid = null; 42 } 43 44 return m_Mesh; 45 } 46 set 47 { 48 m_Mesh = value; 49 m_Guid = null; 50 m_SerializedMesh = null; 51 } 52 } 53 54 public void OnBeforeSerialize() 55 { 56 m_SerializedMesh = EditorJsonUtility.ToJson(new MeshHelper { mesh = mesh }, false); 57 } 58 59 public void OnAfterDeserialize() 60 { 61 } 62 } 63}