AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

ロックオン数も評価してターゲットを決める

 距離だけではなく、味方が何台すでにロックオンしているかも評価に加えてみました。
 lockon*4fの倍数を増やすほど、距離度外視してフリーな敵を狙うようになります。

int targetNo=-1;
float minDis=9999f;
for(int i=0;i<=3;i++)
{
	target = Main.targets[i];
	if(target == null ) continue;
	target2 = target.GetComponent<Target>();
	dis = Vector3.Distance(transform.position,target.transform.position);
	dis += target2.lockon*4f;
	if(dis<minDis) { minDis=dis; targetNo=i; }
}

f:id:yasu9780:20160920223801g:plain
 攻撃中に次のターゲット狙いの行動が出てきてますね。
 Tank#4,#6は近くのTargetを狙わずに、フリーなTarget#3を狙ってますね。
 最後のTarget#1を攻撃中も、ロックオン4を集中しすぎと判断して、Target#3へ浮気をしようとした戦車が現れています。
 この改良で、より知能を感じられるようになった気がします。