com.alicizax.unity.framework/Runtime/ABase/Structs/UniqueID.cs

45 lines
957 B
C#
Raw Normal View History

2025-10-11 15:18:09 +08:00
using System;
namespace AlicizaX
{
/// <summary>
/// Generates a Unique ID that can be used to identify scripts when saving/loading script state.
/// </summary>
[Serializable]
public sealed class UniqueID
{
public string Id;
public UniqueID()
{
GenerateIfEmpty();
}
/// <summary>
/// Generate an ID only if it's missing.
/// </summary>
public void GenerateIfEmpty()
{
if (!string.IsNullOrEmpty(Id))
return;
Generate();
}
/// <summary>
/// Assign a new random ID and overwrite the previous.
/// </summary>
public void Generate()
{
Id = GameHelper.GetGuid();
}
public static implicit operator string(UniqueID uniqueID)
{
return uniqueID.Id;
}
public override string ToString() => Id;
}
}