using System; using UnityEngine; namespace TyphoonPool { /// /// 池对象操作器 /// public struct PoolObjectOperation { public ulong ObjectID { get; internal set; } public ulong PoolID { get; internal set; } public bool IsBusy { get { if (ObjectID > 0 && PoolID > 0) { return !PoolManager.GetPool(PoolID).IdleIDs.Contains(ObjectID); } Debug.LogError($"只有从池中获取的实例才支持IsBusy"); return false; } } public bool IsValid => ObjectID > 0 && PoolID > 0; internal PoolObjectOperation(ulong objectID, ulong poolID) { ObjectID = objectID; PoolID = poolID; } public void RecycleToPool() { if (IsValid) { PoolManager.Recycle(PoolID, ObjectID); } } } }