关于使用 Enqueue 时出现NullReferenceException 的

我是unity新手,现在遇到一个关于Queue使用的问题。 生成并创建队列后,我只能取出对象。 当我尝试使用Enqueue()放回时,会出现NullReferenceException错误(在其他脚本中调用)。 以下是我的代码。希望得到帮助

public Queue<GameObject> enemyPool;
public static EnemyPoolM instance;
public int poolNum = 5;
private void Awake()
    {
        instance = this;
    }
void Start()
    {
        enemyPool = new Queue<GameObject>();
        GameObject enemy = null;
        for (int i = 0; i < poolNum; i++)
        {
            enemy = Instantiate(enemy1_prefab);
            enemy.SetActive(false);
            enemyPool.Enqueue(enemy);
        }
    }
public GameObject GetEnemy()
    {
        if (enemyPool.Count>0)
        {
            GameObject enemy = enemyPool.Dequeue();
            enemy.SetActive(true);
            return enemy;
        }
        else
        {
            return Instantiate(enemy1_prefab);
        }
    }
public void RecoverEnemy(GameObject obj)
    {
        obj.SetActive(false);
        enemyPool.Enqueue(obj);       //这里就是unity报错的代码
    }

下面是我在其他脚本中调用这个方法的代码

void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            enemy = this.gameObject;
            EnemyPoolM.instance.RecoverEnemy(enemy);
        }
        
    }

-----------------------------------------------------分割线--------------------------------------------------------------
通过在方法中间添加Debug.Log来进行问题判定

public void RecoverEnemy(GameObject obj)
    {
        if (obj == null)
        {
            Debug.Log("Object Null");
        }

        if (enemyPool == null)
        {
            Debug.Log("C-Queue is null");
        }
        obj.SetActive(false);
        enemyPool.Enqueue(obj);        
    }

结果显示

C-Queue is null

这说明在这一步时数列为null不存在了,这让我很疑惑,我在最开始时就生成过数列了的中间只有取出的操作,怎么会不存在了呢。希望得到解答。

在大佬的帮助下问题成功的解决了。
方法就是将queue队列转换为static变量。
原因的话,大佬没回复,哈哈哈哈我的猜想是:
在定义变量时就将queue初始化,这样就不会在start()中进行才进行 ‘enemyPool = new Queue();’ 的操作,也或许是因为转为static后会一直储存在内存中不被清除也就不会为null了吧。
不知道对不对。希望有高人指点一下。

private static Queue<GameObject> enemyPool = new Queue<GameObject>();