protected void Delete(int count)
        {
            for (int i = 0; i < count; i++)
            {
                if (this.list.Count <= 0)
                {
                    return;
                }

                int        index = this.list.Count - 1;
                GameObject go    = this.list[index];
                this.list.RemoveAt(index);

                //this.pool.Free(go);
                //or
                IPooledObject freeable = go.GetComponent <IPooledObject>();
                freeable.Free();
            }
        }