com.alicizax.unity/Runtime/Base/TaskPool/TaskInfo.cs

147 lines
3.6 KiB
C#
Raw Normal View History

2025-02-07 16:04:12 +08:00
using System.Runtime.InteropServices;
namespace AlicizaX.Runtime
{
/// <summary>
/// 任务信息。
/// </summary>
[StructLayout(LayoutKind.Auto)]
public struct TaskInfo
{
private readonly bool m_IsValid;
private readonly int m_SerialId;
private readonly string m_Tag;
private readonly int m_Priority;
private readonly object m_UserData;
private readonly TaskStatus m_Status;
private readonly string m_Description;
/// <summary>
/// 初始化任务信息的新实例。
/// </summary>
/// <param name="serialId">任务的序列编号。</param>
/// <param name="tag">任务的标签。</param>
/// <param name="priority">任务的优先级。</param>
/// <param name="userData">任务的用户自定义数据。</param>
/// <param name="status">任务状态。</param>
/// <param name="description">任务描述。</param>
public TaskInfo(int serialId, string tag, int priority, object userData, TaskStatus status, string description)
{
m_IsValid = true;
m_SerialId = serialId;
m_Tag = tag;
m_Priority = priority;
m_UserData = userData;
m_Status = status;
m_Description = description;
}
/// <summary>
/// 获取任务信息是否有效。
/// </summary>
public bool IsValid
{
get
{
return m_IsValid;
}
}
/// <summary>
/// 获取任务的序列编号。
/// </summary>
public int SerialId
{
get
{
if (!m_IsValid)
{
throw new GameFrameworkException("Data is invalid.");
}
return m_SerialId;
}
}
/// <summary>
/// 获取任务的标签。
/// </summary>
public string Tag
{
get
{
if (!m_IsValid)
{
throw new GameFrameworkException("Data is invalid.");
}
return m_Tag;
}
}
/// <summary>
/// 获取任务的优先级。
/// </summary>
public int Priority
{
get
{
if (!m_IsValid)
{
throw new GameFrameworkException("Data is invalid.");
}
return m_Priority;
}
}
/// <summary>
/// 获取任务的用户自定义数据。
/// </summary>
public object UserData
{
get
{
if (!m_IsValid)
{
throw new GameFrameworkException("Data is invalid.");
}
return m_UserData;
}
}
/// <summary>
/// 获取任务状态。
/// </summary>
public TaskStatus Status
{
get
{
if (!m_IsValid)
{
throw new GameFrameworkException("Data is invalid.");
}
return m_Status;
}
}
/// <summary>
/// 获取任务描述。
/// </summary>
public string Description
{
get
{
if (!m_IsValid)
{
throw new GameFrameworkException("Data is invalid.");
}
return m_Description;
}
}
}
}