距離だけではなく、味方が何台すでにロックオンしているかも評価に加えてみました。
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; } }
攻撃中に次のターゲット狙いの行動が出てきてますね。
Tank#4,#6は近くのTargetを狙わずに、フリーなTarget#3を狙ってますね。
最後のTarget#1を攻撃中も、ロックオン4を集中しすぎと判断して、Target#3へ浮気をしようとした戦車が現れています。
この改良で、より知能を感じられるようになった気がします。