A game about forced loneliness, made by TACStudios
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}