invokerepeating间隔不一致,怎么解决?是什么原因导致的呢?

下面是我写的代码,使用invokerepeating方法的时候,出来的效果不是平均间隔的,这个是什么导致的呢?
有什么办法解决吗?
图片说明

    void Start()
    {
        _instance = this;
        levelEnemyCount = Random.Range(level, level * 2);
        Debug.Log(levelEnemyCount);

        //是否可孵化敌人
        if (enemyAlive == 0 && levelEnemyCount != 0)
        {
            InvokeRepeating("Spawn", 0, intervalTime);
            //Spawn();
        }
    }

            void Update()
    {
        if (enemyAlive == 0 && levelEnemyCount == 0)
        {
            level++;
            levelEnemyCount = Random.Range(level, level * 2);
            InvokeRepeating("Spawn", levelIntervalTime, intervalTime);
            Debug.Log(levelEnemyCount);
        }
    }
            void Spawn()
    {
        //生成敌人
        if(levelEnemyCount > 0)
        {            
            //固定位置初始化敌人位置
            enemyGameObject = Instantiate(enemyPrefabs[Random_Unm(enemyPrefabs.Length - 1)],
                spawnPos[Random_Unm(spawnPos.Length - 1)].localPosition, Quaternion.identity);
            Debug.Log(Time.deltaTime);

            //设置敌人父物体
            enemyGameObject.transform.SetParent(GameObject.Find("EnemyHold").transform, false);

            levelEnemyCount--;
            enemyAlive++;
        }

    }

https://blog.csdn.net/cqfdcw/article/details/80134260