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()
?