Unityで立体迷路を作る⑦|フロア別ミニマップの作り方

Unity立体迷路 パネルにミニマップを追加作成した画像 ゲームの作り方
ミニマップ画面の表示

🔍本記事では、RigidbodyやCharacterControllerを使わずにC#スクリプトだけで立体迷路を作る方法を解説します。
今回は、各フロアごとのミニマップを作成してUIに表示する手順を紹介します。

✅前回の記事はこちら👇

スポンサーリンク

レンダーテクスチャを作成

  • プロジェクトウィンドウで右クリック → 作成 → レンダーテクスチャ を選択
  • フロアの数だけ複製し、任意の名前を設定
Unity立体迷路レンダーテクスチャ作成画像

レイヤーを作成・設定

  • Unity上部の「編集 → プロジェクト設定 → タグとレイヤー」を開く
  • Player レイヤーを作成
  • MiniMap1~4 レイヤー(各フロア用)を作成
  • フロアの床をそれぞれのMiniMapレイヤーに割り当て
  • 階段もMiniMapレイヤーに複製して割り当て
  • Playerを Map レイヤーに変更(子オブジェクトで形やサイズを自由に設定可能
Unity立体迷路 プレイヤーの子オブジェクトにconeを追加して、レイヤーをPlayerに設定した画像

↑BlenderからCone

ミニマップ用カメラを追加

  • ヒエラルキーにカメラを追加し、迷路の真上に配置
  • 投影方法 → 平行投影
  • サイズ → 10(迷路サイズに合わせる)
  • Far → 10(軽量化のため最小限)
  • ターゲットテクスチャ に作成したレンダーテクスチャを割り当てる
    ※シーンビュー右下でカメラ画像が迷路にぴったり収まるよう調整
    ※フロア分カメラを複製し、それぞれレンダーテクスチャを割り当て
    ※メインカメラ以外の Audio Listener は削除
Unity立体迷路 ミニマップ用カメラを追加してカメラ画像が迷路にぴったり収まるよう調整した画像

パネルにRawImageを追加

  • ヒエラルキーのパネルに UI → Raw Image を追加
  • テクスチャ に作成したレンダーテクスチャを割り当て
  • 位置・サイズを調整し、フロア分複製
Unity立体迷路 パネルにRawImageを作成した画像


ミニマップ切替スクリプトを作成

using UnityEngine;

public class MinimapSwitcher : MonoBehaviour
{
 public GameObject minimapFloor1;
 public GameObject minimapFloor2;
 public GameObject minimapFloor3;
 public GameObject minimapFloor4;
 public Transform player;

 void Update()
 {
 if (player.position.y < 2) ShowFloor1Minimap();
 else if (player.position.y < 4) ShowFloor2Minimap();
 else if (player.position.y < 6) ShowFloor3Minimap();
 else ShowFloor4Minimap();
 }

 void ShowFloor1Minimap()
 {
 minimapFloor1.SetActive(true);
 minimapFloor2.SetActive(false);
 minimapFloor3.SetActive(false);
 minimapFloor4.SetActive(false);
 }

 void ShowFloor2Minimap()
 {
 minimapFloor1.SetActive(false);
 minimapFloor2.SetActive(true);
 minimapFloor3.SetActive(false);
 minimapFloor4.SetActive(false);
 }

 void ShowFloor3Minimap()
 {
 minimapFloor1.SetActive(false);
 minimapFloor2.SetActive(false);
 minimapFloor3.SetActive(true);
 minimapFloor4.SetActive(false);
 }

 void ShowFloor4Minimap()
 {
 minimapFloor1.SetActive(false);
 minimapFloor2.SetActive(false);
 minimapFloor3.SetActive(false);
 minimapFloor4.SetActive(true);
 }

  • RawImageをまとめる親オブジェクトを作成
  • スクリプトをアタッチし、インスペクターで割り当てる
Unity立体迷路 Minimap Switcherスクリプトをアタッチしてインスペクターで割り当てた画像

動作確認

  • ミニマップにPlayerの現在地が表示されているか
  • 各フロアに移動したときに、対応するミニマップが表示されるか

まとめ

今回は、フロアごとのミニマップ作成とUI表示の方法を解説しました。

次回はゴールの判定とゲームクリア時の演出について解説します。

コメント

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