SRPGの作り方5 シミュレーションゲームの移動先マップの取得と強調表示処理の実装 | Unity入門の森 ゲームの作り方

SRPGの作り方5 シミュレーションゲームの移動先マップの取得と強調表示処理の実装

Unity SRPG(戦略シミュレーションゲーム)の作り方


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

今回の記事は戦略シミュレーションRPGの作り方を解説する講座の第5回目です。

前回までで自動生成される3Dフィールドマップ上で2Dキャラクターを表示させるシステムを構築しました。

前回の記事:

SRPGの作り方4 3Dマス目マップで2Dドット絵キャラを表示させ移動システムを構築する
今回の記事はシミュレーションRPGの作り方講座の第4回です。 前回記事では移動可能な草原フィールドと移動不可能な水辺フィールドを構築し、ランダム生成するスクリプトを作成しました。 前回の記事: 今回はキャラクターオブジェクトを作成してマップ...

実際に表示されているキャラクター移動などを行うには対象となるブロックをタップ操作で選択できるようにする必要があります。このあたりの処理を実装していきましょう。

また、今回は選択を行ったブロックが強調表示される部分も一緒に開発していきます。


【Line登録者限定のプレゼントもあるよ!】

SRPGのゲームシステムを管理するゲームマネージャを作成

これから実装するブロック選択処理を含め、ゲームの進行に関する処理を追加していく「GameManager」スクリプトを作成します。この名前のスクリプトだけアイコンが変わりますが気にしなくてOKです。

作成できたらManagersオブジェクトにアタッチします。コンポーネントの表示順は[Move Up]ボタン等で変更可能です。

まずはタップ先のブロックを取得する処理をGameManagerに書いていきましょう。

  • タップ判定はInput.GetMouseButtonDown(0)でとる事ができます(タップした瞬間のみtrueが返ってきます)。エディター上のマウスクリックでも同じ動作をします。
  • タップした場所のオブジェクトを取得する方法はいくつか存在しますが、今回はRay(光線)を使用した方法をとっています。カメラからタップ方向に透明な光線を飛ばし、線に触れたオブジェクトを取得する流れです。
  • このゲームではブロック以外に当たり判定を持ったオブジェクトは登場しないため、ブロック以外がタップされた場合の処理を書く必要はありません。
  • Debug.Logメソッドはテストプレイ中にログを確認できる便利なメソッドです。引数として文字列を渡せばそれを出力します。変数も文字列に変える事が可能なため同様に出力できます。

今回インスペクタからの設定は必要ありません。ゲームを実行して確かめてみましょう。

ブロックをタップするとConsoleビューにDebug.Logからのログが出力されているのが見られます。

これでタップ先のブロックを検出する所まで成功しました。

ブロックの強調表示機能を用意する

現時点ではプレイヤー側にはどのブロックが選択されたかの視覚化がなされていないのでやや不親切です。

ブロックが選択されたらそれを強調表示にする事で分かりやすくしていきましょう。

選択時にのみ表示されるオブジェクトを作成する

強調表示の方法はいくつか考えられますが、今回採用するのは「ブロックごとにより大きなオブジェクトを追加で子に持たせ、選択時にのみそれを表示させる」方法です。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

まとめ

これで移動予定のブロックを選択して強調表示することができました。

  • Rayを使用するなどの方法でタップした場所にあるオブジェクトを取得する事が出来ます。(オブジェクトに当たり判定がついている必要があります。)
  • プレハブは子オブジェクトを持つ事ができ、それらは[Open Prefab]ボタンから編集可能です。
  • 配列やリストを使用すれば多数存在する(同じ型の)データをまとめて管理する事が可能です。

次回記事からは選択したキャラクターの移動処理を実装していきます。

次の記事:

SRPGの作り方6 キャラ移動とシミュレーションゲームのターン進行システムを連動させる
この講座はシミュレーションRPGの作り方について説明しています。今回はその第6回目になります。 前回はSRPGに必須のマップ上の移動用ブロックのマス表示処理やあるマスを選択した状態で別のマスを選択すると元々選択していたマスを非表示にする処理...

Unity SRPG(戦略シミュレーションゲーム)の作り方講座に戻る>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

タイトルとURLをコピーしました