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(); } } }