如何循环我的敌人射击多个目标



我想创建一个类似Slither.io的游戏,希望敌人向最近的敌人射击,只射击一次然后停止。在一些帮助下,我研究了循环,但我完全迷失了方向,希望得到一些帮助谢谢

public class RandomAIProjectile
{
private GameObject[] target;

public float speed;

Rigidbody2D bulletRB;

public GameObject explosionEffect;

// Find Targets Section.
void Start () 
{
if (target == null)
target = GameObject.FindGameObjectsWithTag("Player");

for (int i = 0; i < target.Length; i++) 
{
bulletRB = GetComponent<Rigidbody2D> ();

Vector2 moveDir = (target[i].transform.position - transform.position).normalized * speed;

bulletRB.velocity = new Vector2 (moveDir.x, moveDir.y);

Destroy (this.gameObject, 2);
}

}

private void OnTriggerEnter2D(Collider2D other)
{
// Decoy Script To Destroy Players.
if (other.gameObject.GetComponent<BlackthronpodDiePlayer>() != null)
{
Destroy (other.gameObject);
Destroy (gameObject); 
}
// Damage Effect.
if (other.gameObject.tag == "Player") {
Instantiate (explosionEffect, transform.position, Quaternion.identity);
Destroy(gameObject);
}
// Player (Bullet) Destroy Enemy.
if (other.CompareTag ("Bullet"))
{
Destroy (other.gameObject);
Destroy (gameObject); 
}


}
}

如果在启动方法中包含此项,则只有在对象初始化后才会运行它。您希望包含一个void Update((方法,以使对象激发每一帧。然后你可以加上一些类似bool的东西来表示它已经开火了。

if(fired)
{ //do nothing}    

最新更新