一番近い敵を見つける

FindGameObjectsWithTag()は、Enemyのタグが付いているGameObjectを複数返すので、
結果は配列変数で受ける
配列変数を回して、自分との距離を調べて、範囲内でかつ一番近いものを求める
ループが終了時に求まっている最短距離の敵に対して、攻撃するなどのアクションを行う


GameObject nearestEnemy=null;
float minDis=1000f;
GameObject[] enemys = GameObject.FindGameObjectsWithTag("Enemy");
foreach(GameObject enemy in enemys)
{
	float dis = Vector3.Distance( transform.position,enemy.transform.position);
	if( dis<=Range && dis<minDis && enemy.GetComponent<Enemy>().hp>0 )
	{
		minDis=dis;
		nearestEnemy=enemy;
	}
}
if( nearestEnemy!=null && canon )
{
}

タグ:

unity
最終更新:2015年05月24日 17:02