c# - 如何在一定时间后停止产生攻击者?
问题描述
如何在一定时间后停止生成敌人?基本思想是我的敌人会随机生成,我需要一些方法来阻止它们在特定时间后生成。
下面是我的代码:
[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;
}
解决方案
解决方案
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);
}
推荐阅读
- c++ - 我如何在 mac os 中预编译 stdc++.h
- android - 在 kotlin (android) 中使用 DataBinding 的片段?
- javascript - 无效的钩子调用reactjs
- node.js - nodejs - 如何正确地从 express 服务 vue 应用程序
- javascript - D3 函数,用于产生类似仪表的刻度:[-2, -1, 0, 0, 1, 2]
- python - 如何创建向文件添加扩展名的功能?
- json - Postman 和 JAX RS 用于发布请求
- cucumber - 在 docker 中分发黄瓜 junit5 测试
- .net - 分析 Windows 10 内核转储是否挂起(可能是由于 .Net 应用程序)
- c++ - WRL::ComPtr 导致 d3d 中的对象泄漏?