예제 #1
0
        public RingBufferObjectAllocator(IObjectFactory factory, int initPoolSize = 0)
        {
            _factory = factory;
            if (initPoolSize > _pool.Capacity)
            {
                RingBuffer <object> old = _pool;
                _pool = new RingBuffer <object>(initPoolSize * 2);
            }

            List <object> temp = new List <object>();

            for (int i = 0; i < initPoolSize; i++)
            {
                var o = Allocate();
                temp.Add(o);
            }

            foreach (var o in temp)
            {
                Free(o);
            }

            //UnityEngine.Debug.LogErrorFormat("{0}init size:{1} {2}", factory, initPoolSize, _pool.Count);
        }