You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
994 B
44 lines
994 B
using System; |
|
using UnityEngine; |
|
|
|
namespace UnityEditor.ShaderGraph |
|
{ |
|
[Serializable] |
|
class SerializableGuid : ISerializationCallbackReceiver |
|
{ |
|
public SerializableGuid() |
|
{ |
|
m_Guid = Guid.NewGuid(); |
|
} |
|
|
|
public SerializableGuid(Guid guid) |
|
{ |
|
m_Guid = guid; |
|
} |
|
|
|
[NonSerialized] |
|
private Guid m_Guid; |
|
|
|
[SerializeField] |
|
private string m_GuidSerialized; |
|
|
|
public Guid guid |
|
{ |
|
get { return m_Guid; } |
|
internal set { m_Guid = value; } // allow id to be overwritten when necessary |
|
} |
|
|
|
public virtual void OnBeforeSerialize() |
|
{ |
|
m_GuidSerialized = m_Guid.ToString(); |
|
} |
|
|
|
public virtual void OnAfterDeserialize() |
|
{ |
|
if (!string.IsNullOrEmpty(m_GuidSerialized)) |
|
m_Guid = new Guid(m_GuidSerialized); |
|
else |
|
m_Guid = Guid.NewGuid(); |
|
} |
|
} |
|
}
|
|
|