i-school - 2Dタワーディフェンス 手順29
 この手順では処理のロジックを考えて、処理の実装に挑戦してみてください。

 以下の内容で実装を進めていきます。

手順29 ーゲームの進行状態を活用した配置キャラの制御機能の実装ー
48.ゲームの進行状態を活用して配置キャラの制御を実装する



 新しい学習内容は、以下の通りです。

 ・ロジックを考えて処理を実装する



48.ゲームの進行状態を活用して配置キャラの制御を実装する

1.設計


 配置された味方のキャラですが、現在はゲームの進行状況に関わらずに攻撃を行うようになっています。
そのため、キャラの攻撃範囲内に敵がいるときに、キャラ配置用のポップアップを開くと、敵は移動を停止しますが、
味方キャラは攻撃を停止しないため、一方的な攻撃が可能な状態になってしまっています。

 この状況を改善して、味方キャラもゲームの進行状態によって制御管理されるように修正を行ってみてください。

 ・ゲームの進行状況(currentGameState 変数)が Play のときにのみ、攻撃の準備を行うようにする。準備が止まれば、攻撃も止まる

<実装動画>
動画ファイルへのリンク

 それともう1つ、キャラが破壊されるときに、GameManager クラス内にある charaList からキャラの情報を削除する処理も追加してみてください。
敵キャラが破壊された場合にも、GameManager クラス内にある List から削除される処理が実装済ですので、こちらを参考にしてください。


2.参考例


 CharaController スクリプトを修正することにより、ゲームの進行状態を活用して攻撃の一時停止と再開機能を実装してみてください。

 また、GameManager スクリプト内にキャラのリストを用意してありますので、キャラが破壊されたときにこのリストからキャラの情報が削除されるようにしてみてください。


 <= クリックすると開きます



3.ゲームを実行して動作を確認する


 味方キャラを配置し、キャラの攻撃範囲内に敵キャラを侵入させた状態で、キャラ配置用のポップアップを開いて待機してください。
そのまま待機を続けても、配置したキャラが敵キャラを攻撃しなければ制御成功です。


<実装動画>
動画ファイルへのリンク

 その後、配置用のポップアップを閉じていただき、再度、敵への攻撃を再開すれば、制御成功です。

 合わせて、味方キャラの攻撃回数が 0 になって破壊されるときに、GameManager クラスの charaList からキャラの情報が削除されることも確認しておいてください。

 以上でこの手順は終了です。

 次は 手順30 −実装全体の振り返り− です。