コード例 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="objectPoolLibrary">Библиотека пулов. Используется для нахождения пула объекта по объекту или его префабу</param>
 /// <param name="poolCreator">Создатель пулов. Переопределяется при необходимости переопределения конструктора пулов</param>
 public PoolSpawner(int objectsCount         = DefaultObjectsCount, IObjectPoolLibrary objectPoolLibrary = null,
                    IPoolCreator poolCreator = null)
 {
     _objectPoolLibrary = objectPoolLibrary ?? new DictionaryPoolLibrary();
     _poolCreator       = poolCreator ?? new DefaultPoolCreator();
     _objectsCount      = objectsCount;
 }
コード例 #2
0
        //private ConcurrentStack<T>  m_IdleList;


        public AllocBasePool(int count, IPoolCreator <T> creator)
        {
            m_TotalCount  = count;
            m_IdleCount   = count;
            m_PoolCreator = creator;

            m_AllocList = new List <T>(count);
            foreach (var v in creator.Create(count))
            {
                m_AllocList.Add(v);
            }

            //m_IdleList = new ConcurrentStack<T>(m_AllocList);
            m_IdleList = new List <T>(m_AllocList);
        }
コード例 #3
0
        public virtual void dispose()
        {
            if (m_IdleList != null)
            {
                m_IdleCount = 0;

                m_IdleList.Clear();
                m_IdleList = null;
            }

            if (m_AllocList != null)
            {
                m_TotalCount = 0;

                m_AllocList.Clear();
                m_AllocList = null;
            }

            m_PoolCreator = null;
        }