C# 在0-60秒的随机时间内发射敌方塔的箭头脚本

C# 在0-60秒的随机时间内发射敌方塔的箭头脚本,c#,unity3d,random,C#,Unity3d,Random,我没有脚本可供展示,因为我无法遇到这样的情况,所以它是这样的: C#脚本 所以我有我的2D精灵敌人塔,我希望塔在每次向我只能向左或向右移动的人开火之间有2秒的停顿,发射5支箭,现在敌人塔开火的时间我也希望是随机的,在0-60秒的范围内。在塔重新加载并等待另一个随机时间来发射我的刚体箭精灵之后 我知道我不能指望有人牵着我的手为我做这件事,但我遇到的所有脚本都是玩家射箭或通常是3D的敌方玩家 任何指导的帮助都是非常有帮助的,我边走边学习 IEnumerator TowerShooting() {

我没有脚本可供展示,因为我无法遇到这样的情况,所以它是这样的:

C#脚本

所以我有我的2D精灵敌人塔,我希望塔在每次向我只能向左或向右移动的人开火之间有2秒的停顿,发射5支箭,现在敌人塔开火的时间我也希望是随机的,在0-60秒的范围内。在塔重新加载并等待另一个随机时间来发射我的刚体箭精灵之后

我知道我不能指望有人牵着我的手为我做这件事,但我遇到的所有脚本都是玩家射箭或通常是3D的敌方玩家

任何指导的帮助都是非常有帮助的,我边走边学习

IEnumerator TowerShooting()
{
   while(true)
   {
      float timer = Random.Range(0f, 60f);
      yield return new WaitForSeconds(timer);
      float shootingTimer = 2f;
      int amountArrow = 3;
      while(amountArrow > 0)
      {
          Shoot();
          amountArrow--;
          yield return new WaitForSeconds(shootingTimer);
      }
   }
}
代码相当简单,因为方法命名是显式的。您有两个循环,第一个是无限的(某种程度上类似于更新)。它首先获取等待时间,并在第一次WaitForSeconds迭代时等待

然后它进入一个内部循环,该循环将运行3次放炮,每次放炮也需要等待2秒。完成三次射击后,我们返回主回路,依此类推,直到塔被摧毁/禁用

代码相当简单,因为方法命名是显式的。您有两个循环,第一个是无限的(某种程度上类似于更新)。它首先获取等待时间,并在第一次WaitForSeconds迭代时等待


然后它进入一个内部循环,该循环将运行3次放炮,每次放炮也需要等待2秒。三次射击完成后,我们回到主回路,依此类推,直到塔被摧毁/禁用。

给出了一个很好的例子。非常感谢你的hep,我会将此代码附加到我的敌人塔上,但这件事突然出现,我以前也遇到过这种情况,我知道我不能再问另一个问题,但我只想让你帮忙。.射击(); 代码中说Shoot()的那部分;有下划线,并一直在说我必须做的潜在修复对不起,我一直试图做一个新行,它发布了评论private void Shoot(){throw new NotImplementedException();}我把脚本附在我的敌人塔上,但没有发射箭…我需要一个公共预制在脚本中把我的箭也放进去。箭在发射时也会有拱门吗?给出了一个很好的例子。非常感谢你的hep。我会将此代码附加到我的敌人塔上,但这件事突然出现,我以前也有过这种情况,我知道我不能再问其他问题,但我只想让你帮我..射击();代码中说Shoot()的那部分;有下划线,并一直在说我必须做的潜在修复对不起,我一直试图做一个新行,它发布了评论private void Shoot(){throw new NotImplementedException();}我把脚本附在我的敌人塔上,但没有发射箭…我需要一个公共预制在脚本中把我的箭也放进去。射出的箭也会有拱门吗?