i-school - 3Dレールガンシューティング 発展25
 マウスの位置に合わせてゲーム画面内を移動する照準器の表示機能を実装します。
この位置に向かって弾が発射されるため、目印としての機能を持ちます。


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



発展25 ー照準器機能の追加ー


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

 ・UI の応用



1.設計


 ゲーム画面内のマウスカーソルの位置に照準器を表示します。

 設計としては、UI として Canvas 内に照準器のゲームオブジェクトを配置し、
マウスカーソルの座標位置に照準器の座標を同期させることによって、マウスカーソルの位置 = 照準器の位置という制御を実装します。

 マウスカーソルの位置は Input クラスの mousePositon 変数から取得できますので、この情報を利用します。

 どのようにすればマウスカーソルの位置と照準器の位置を同期させることができるかを、まずは考えてから先に進んでください。
処理のイメージを作っていくことが、設計力、実装力といった技術を磨くことにつながります。


2.照準器用のアイコン画像から UI 用のゲームオブジェクトを作成して配置する


 任意に作成してください。

 基本的な設計は、照準器は Canvas 内に作成します。

 照準器用の無料の画像を探して Unity へインポートし、Canvas 内に新しく Image ゲームオブジェクトを配置して
その画像として照準器の画像を設定してください。Raycast Target のチェックは外しておきます。(理由が分からない場合には自分で調べておきましょう。)

 下記は参考画像です。この通りである必要はありません。


ヒエラルキー画像例



インスペクター画像例



 以上で完了です。


3.GameData.cs を修正する


 新しい bool 型の変数を追加して、照準器の表示/非表示を選択できる機能を追加します。
このチェックが入っていれば照準器をゲーム画面に表示し、チェックが入っていないときは表示しないように切り替えるように利用します。
型と値に基づいて、どういったロジックがあれば表示を切り替える制御になるのかを考えてみてください

 こちらの処理を元にして、ゲーム内のオプション設定として変更ができるような設計を考えて、実装に挑戦してみてください。


GameData.cs

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


 スクリプトを修正したらセーブを行います。


4.GameData ゲームオブジェクトの設定を行う


 先ほど追加した isTargetMarker 変数にチェックを入れます。
このチェックが入っていれば照準器をゲーム画面に表示し、チェックが入っていないときは表示しないように切り替えるように利用します。


インスペクター画像



 以上で設定は完了です。


5.UIManager スクリプトを修正する


 新しく作成した照準器用のゲームオブジェクトを制御するため、UIManager スクリプトの修正を行います。
なぜ、このスクリプトを修正するのかを考えた上で、出来るだけ教材を見ずに、照準器の制御処理を完成させてみてください。


UIManager.cs


 スクリプトを修正したらセーブします。


6.UIManager ゲームオブジェクトの設定を行う


 Canvas 内に作成した TargetIcon オブジェクトを、新しく作成した TargetIcon 変数にドラッグアンドドロップしてアサインしてください。
これでゲームオブジェクトの制御が行える設定が整いました。


インスペクター画像



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


 ゲームを実行して、照準器が表示されているかを確認します。

 その後、ゲーム画面内のマウスカーソルの位置を変更してください。
移動に合わせて照準器が移動すれば制御成功です。


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




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

 次は 発展26 ーロックオン機能の追加− です。