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); }