2014年1月19日日曜日

【Unity】RTS:グループごとの状態と陣形の展開

戦闘力55以上のグループを作るように指示したところ戦闘力50の重戦車と戦闘力5の軽戦車でグループが編成された。
 前回必要な戦闘力に応じてAIは指揮下のユニットをいくつかのグループに分割できるようにしたが、それに伴いグループごとのユニットのHPなどの状態を監視できるようにした。


 グループごとの状態を把握できるようになったので、AIは損傷したグループを後退させるといったことが可能になる。これはこれまでユニットがAIに送っていた報告にユニットの所属するグループIDを含めることで、受けとったAI側でグループごとに報告を集計することで実現している。

 またグループのユニットが移動を終えたか判定する関数も実装した。これによりグループが陣形を完全に展開し終えたことを確認して次の作戦行動に移るように指示することが可能になった。
 具体的には戦術の実行は以下の様なプロセスを経ることになる。
1)グループの編成
2)グループを展開
3)グループの展開を確認
4)攻撃・移動などを指示
展開を確認する部分。グループのユニットが移動中かどうかで判定する
展開が確認できない場合、一定期間後に再度プロセス3を繰り返すことになる。一旦プロセスが途切れることになるので、最初の決定が消えてしまわないよう、1〜4のプロセスは共通のパラメータを引き継いでブレないようにしている。

0 件のコメント: