C# 为什么我的障碍物产卵不遵循相同的产卵模式?

C# 为什么我的障碍物产卵不遵循相同的产卵模式?,c#,unity3d,2d,spawn,C#,Unity3d,2d,Spawn,我正在做一个游戏,你有3个街区要移动,其中两个街区有障碍物,这是一张图片。我遇到的问题是,障碍物有时需要休息3秒钟,然后再次繁殖,然后等待一段时间,然后再次开始繁殖。这种模式不是连续的。我希望它们总是像中间的第二个一样产卵 using System.Collections; using System.Collections.Generic; using UnityEngine; public class merHinder : MonoBehaviour { pub

我正在做一个游戏,你有3个街区要移动,其中两个街区有障碍物,这是一张图片。我遇到的问题是,障碍物有时需要休息3秒钟,然后再次繁殖,然后等待一段时间,然后再次开始繁殖。这种模式不是连续的。我希望它们总是像中间的第二个一样产卵

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

public class merHinder : MonoBehaviour
{
    public Rigidbody2D orginal;
    private Vector3[] spawnPos = new Vector3[3];


    // Start is called before the first frame update
    void Start()
    {
        //InvokeRepeating("timer", 0f, 1f);
        StartCoroutine(SpawnAtIntervals(1f));
    }

    // Update is called once per frame
    void Update()
    {


        spawnPos[0] = new Vector3(3, 3.86f, -5);
        spawnPos[1] = new Vector3(-3, 3.86f, -5);
        spawnPos[2] = new Vector3(0, 3.86f, -5);




    }
    private void FixedUpdate()
    {

    }
    void Spawn()
    {
        int randomNumber = Random.Range(0, spawnPos.Length);
        int randomNumber1 = Random.Range(0, spawnPos.Length);
        if (randomNumber != randomNumber1)
        {
            Rigidbody2D clone1 = Instantiate(orginal, spawnPos[randomNumber], Quaternion.identity);
            Rigidbody2D clone2 = Instantiate(orginal, spawnPos[randomNumber1], Quaternion.identity);
        }
        //Destroy(orginal);



    }
    bool keepSpawning = true;

    IEnumerator SpawnAtIntervals(float secondsBetweenSpawns)
    {
        // Repeat until keepSpawning == false or this GameObject is disabled/destroyed.
        while (keepSpawning)
        {
            // Put this coroutine to sleep until the next spawn time.
            yield return new WaitForSeconds(secondsBetweenSpawns);

            // Now it's time to spawn again.
            Spawn();
        }
    }
}

只有当随机数不同时,它们才会繁殖。但有时随机产生的结果是相同的

    int randomNumber = Random.Range(0, spawnPos.Length);
    int randomNumber1 = Random.Range(0, spawnPos.Length);
    if (randomNumber != randomNumber1) // <- No spawn if both random numbers are the same
    {
        Rigidbody2D clone1 = Instantiate(orginal, spawnPos[randomNumber], Quaternion.identity);
        Rigidbody2D clone2 = Instantiate(orginal, spawnPos[randomNumber1], Quaternion.identity);
    }

嗯,那是真的,你知道怎么解决这个问题吗?我需要的数字不是相同的原因,否则他们可以在同一个位置产卵,然后它将在某些时候只有一个障碍。
    void Spawn()
        {
            int randomNumber = Random.Range(0, spawnPos.Length);
            int randomNumber1 = Random.Range(0, spawnPos.Length);
            while (randomNumber == randomNumber1)
            {
                // try again until numbers are different
                randomNumber1 = Random.Range(0, spawnPos.Length);
            }
            Rigidbody2D clone1 = Instantiate(orginal, spawnPos[randomNumber], Quaternion.identity);
            Rigidbody2D clone2 = Instantiate(orginal, spawnPos[randomNumber1], Quaternion.identity);
        }