public void RecycleGameObjectDelay(GameObject pooledGameObject, int delayMillSeconds, CGameObjectPool.OnDelayRecycleDelegate callback = null, float[] objSize = null, Vector3[] objScale = null) { CGameObjectPool.stDelayRecycle stDelayRecycle = new CGameObjectPool.stDelayRecycle(); stDelayRecycle.recycleObj = pooledGameObject; stDelayRecycle.recycleTime = (int)(Time.time * 1000f) + delayMillSeconds; stDelayRecycle.objSize = objSize; stDelayRecycle.objScale = objScale; stDelayRecycle.callback = callback; if (this.m_delayRecycle.get_Count() == 0) { this.m_delayRecycle.AddLast(stDelayRecycle); return; } for (LinkedListNode <CGameObjectPool.stDelayRecycle> linkedListNode = this.m_delayRecycle.get_Last(); linkedListNode != null; linkedListNode = linkedListNode.get_Previous()) { if (linkedListNode.get_Value().recycleTime < stDelayRecycle.recycleTime) { this.m_delayRecycle.AddAfter(linkedListNode, stDelayRecycle); return; } } this.m_delayRecycle.AddFirst(stDelayRecycle); }
public void RecycleGameObjectDelay(GameObject pooledGameObject, int delayMillSeconds, CGameObjectPool.OnDelayRecycleDelegate callback = null) { CGameObjectPool.stDelayRecycle stDelayRecycle = new CGameObjectPool.stDelayRecycle(); stDelayRecycle.recycleObj = pooledGameObject; stDelayRecycle.recycleTime = (int)(Time.time * 1000f) + delayMillSeconds; stDelayRecycle.callback = callback; if (this.m_delayRecycle.Count == 0) { this.m_delayRecycle.AddLast(stDelayRecycle); return; } for (LinkedListNode <CGameObjectPool.stDelayRecycle> linkedListNode = this.m_delayRecycle.Last; linkedListNode != null; linkedListNode = linkedListNode.Previous) { if (linkedListNode.Value.recycleTime < stDelayRecycle.recycleTime) { this.m_delayRecycle.AddAfter(linkedListNode, stDelayRecycle); return; } } this.m_delayRecycle.AddFirst(stDelayRecycle); }