Проблема добавления/извлечения из ObjectPool

Создал ObjectPool на Unity для генерации мобов, но столкнулся с проблемой: весь скрипт отрабатывает штатно, кроме одной строчки, а именно добавление в пул предзагруженных объектов.

При предзагрузке пула, скрипт не может обработать добавление объекта в пул и выдает ошибку (создает объект на сцене, но не может добавить его в пул и скрыть), поэтому на сцене появляется один экземпляр и в консоль падает ошибка:

NRE (я знаю что это, но ссылка на экземпляр ведь указана в скобках?) Строка 43, если кто-то будет копировать код: _pool.Enqueue(item);

using System;
using System.Collections.Generic;
using UnityEngine;

namespace ObjectsPool
{
    public class PoolBase<T>
    {
        private readonly Func<T> _preloadFunc;
        private readonly Action<T> _getAction;
        private readonly Action<T> _returnAction;

        private Queue<T> _pool;
        private List<T> _active = new();

        public PoolBase(Func<T> preloadFunc, Action<T> returnAction, Action<T> getAction, int preloadCount)
        {
            _preloadFunc = preloadFunc;
            _getAction = getAction;
            _returnAction = returnAction;
            if (preloadFunc == null)
            {
                Debug.LogError(message: "Preload function is null");
                return;
            }

            for (int i = 0; i < preloadCount; i++)

                Return(item: preloadFunc());

        }
        public T Get()
        {
            T item = _pool.Count > 0 ? _pool.Dequeue() : _preloadFunc();
            _getAction(item);
            _active.Add(item);

            return item;
        }

        public void Return(T item)
        {
            _pool.Enqueue(item);
            _returnAction(item);
            _active.Remove(item);
        }

        public void ReturnAll()
        {
            foreach (T item in _active.ToArray())
            { Return(item); }
        }
    }
}

Ответы (0 шт):