敵を追尾する弾(ミサイル)

弾(ミサイル)にスクリプトをaddしておく。
targetが敵のGameObject
スムーズに敵の方へ回転し、transform.forward * speedだけ進む
敵との距離が0.1f以内になれば、敵に対して被弾処理を行う
敵が消滅している場合は自分も消滅する


void Update () {
if(target)
{
	transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(target.transform.position - transform.position), 3f);
	transform.position += transform.forward * speed;
	if( Vector3.Distance( transform.position , target.transform.position )<=0.1f )
	{
		if( target.GetComponent<Enemy>() )
		{
			target.GetComponent<Enemy>().takeDamage(atk);
		}
		GameObject.Destroy(this.gameObject);
	}
}
else
{
	GameObject.Destroy(this.gameObject);
}
}

タグ:

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