Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在一段时间后停止繁殖攻击者?_C# - Fatal编程技术网

C# 如何在一段时间后停止繁殖攻击者?

C# 如何在一段时间后停止繁殖攻击者?,c#,C#,我怎样才能在一段时间后停止繁殖敌人?基本的想法是我的敌人会随机繁殖,我需要一些方法来阻止他们在一段时间后繁殖 下面是我的代码: [SerializeField] float minSpawnDelay = 1f; [SerializeField] float maxSpawnDelay = 5f; [SerializeField] Attacker[] attackerPrefabArray; [SerializeField] float spawnerDelay = 1f; bool s

我怎样才能在一段时间后停止繁殖敌人?基本的想法是我的敌人会随机繁殖,我需要一些方法来阻止他们在一段时间后繁殖

下面是我的代码:

[SerializeField] float minSpawnDelay = 1f;
[SerializeField] float maxSpawnDelay = 5f;
[SerializeField] Attacker[] attackerPrefabArray;
[SerializeField] float spawnerDelay = 1f;



bool spawn = true;

IEnumerator Start()
{
    yield return new WaitForSeconds(spawnerDelay);

    while (spawn)
    {
        yield return new WaitForSeconds(Random.Range(minSpawnDelay, maxSpawnDelay));
        SpawnAttacker();                
    }

}


public void StopSpawning()
{
   spawn = false;
}

private void SpawnAttacker()
{
    var attackerIndex = Random.Range(0, attackerPrefabArray.Length);
    Spawn(attackerPrefabArray[attackerIndex]);
}

private void Spawn(Attacker myAttacker)
{
    Attacker newAttacker = Instantiate
        (myAttacker, transform.position, transform.rotation)
        as Attacker;
    newAttacker.transform.parent = transform;
}

您可以为此目的使用计时器:

// Enemies will spawn for 5 seconds.
private float spawnTimer = 5f;

private void Update()
{
    if (spawnTimer > 0)
    {
        spawnTimer -= Time.deltaTime;
        if (spawnTimer <= 0)
        {
            StopSpawning();
        }
    }
}
//敌人将在5秒内繁殖。
专用浮点数计时器=5f;
私有void更新()
{
如果(生成计时器>0)
{
spawhtimer-=Time.deltaTime;
if(生成计时器解决方案)
IEnumerator始终用于此目的。当事件在特定时间间隔后被触发时,使用WaitForSeconds(timespan)。只需使用下面的代码,并在“yield return new WaitForSeconds(5);”之后编写您的desried函数,它将触发或运行您所需的函数

IEnumerator Example()
    {
        print(Time.time);
        yield return new WaitForSeconds(5);
         StopSpawning(enter code here); //your function 
        print(Time.time);
    }

你不能用定时器调用
stopprowning()