Files
beyond/Assets/Scripts/Grid/GuidObject.cs
2024-11-20 15:21:28 +01:00

48 lines
1.3 KiB
C#

using System;
using UnityEngine;
namespace Beyond
{
[Serializable]
public class GuidObject
{
[SerializeField] private System.Guid m_guid;
[SerializeField] private string m_guidAsString;
public System.Guid guid
{
get
{
if (m_guid == System.Guid.Empty)
{
if (!System.String.IsNullOrEmpty(m_guidAsString))
{
m_guid = new System.Guid(m_guidAsString);
}
else
{
Debug.LogWarning("GUID was null for node. Generating...");
GenerateGUID();
}
}
return m_guid;
}
}
public bool IsGenerated
{
get { return m_guid != System.Guid.Empty; }
}
public void GenerateGUID()
{
if (m_guid != System.Guid.Empty)
return;
if (!System.String.IsNullOrEmpty(m_guidAsString))
{
m_guid = new System.Guid(m_guidAsString);
return;
}
m_guid = System.Guid.NewGuid();
m_guidAsString = m_guid.ToString();
}
}
}