🎮この記事では、Unity6を使って「1つのシーンで完結する2D脱出ゲーム」を作る方法を解説しています。
第3回では、オブジェクトをクリックして拡大背景へ切り替える機能を実装します。
🎥 動作例動画
✅前回の記事はこちら👇
オブジェクトの作成
まずは、クリックで拡大できるオブジェクトと、拡大背景をヒエラルキー上に追加します。
ヒエラルキー構成例
Stage
├─ North(背景)
| ├─ Vending machine
| └─ DustBox
├─ Vending machineZoom(背景)
├─ DustBoxZoom(背景)
├─ East(背景)
:
クリックできるオブジェクトを追加
- 背景の中に UI → Image を追加
- オブジェクト画像を設定
- Buttonコンポーネントを追加してクリック可能にする

📸 背景になじませたい場合は、背景を透過で撮影した画像を使うと自然に見えます。
拡大背景の追加
- 下ボタン(戻るボタン)を配置できるよう、スペースを確保
- 開閉する仕掛け(例:扉)は「非表示状態の画像」を設定
→ 子オブジェクトとして「Door1」などを作り、後で制御できるようにします。

BackgroundType.cs に拡大背景を追加
以前作成した enum に拡大背景を追加します。
public enum BackgroundType
{
Title,
Clear,
North,
East,
South,
West,
VendingMachine,
DustBox
}
📝 このスクリプトはどこにもアタッチせず、他スクリプトから参照します。
インスペクターの設定
BackgroundManager に新しい背景を追加しましょう。
- Backgrounds配列に要素を追加
- Typeを設定(例:VendingMachine, DustBox)
- 対応するオブジェクトをアタッチ

BackgroundManager.cs に機能を追加
フィールド追加
private BackgroundType previousBackground; //戻り先を記憶する変数
メゾット追加
// オブジェクトクリックで拡大表示
public void ZoomTo(BackgroundType zoomType)
{
previousBackground = currentBackground; //現在の背景を記憶
SetBackground(zoomType);
backButton.SetActive(true);
}
// 拡大画面から戻る
public void GoBack()
{
SetBackground(previousBackground); //記憶していた背景に戻る backButton.SetActive(false);
}
ZoomObject.cs を作成
using UnityEngine;
public class ZoomObject : MonoBehaviour
{
public BackgroundType zoomTo; // ← インスペクターで指定
// ボタンクリックで呼ばれる
public void OnClick()
{
if (BackgroundManager.Instance != null)
{
BackgroundManager.Instance.ZoomTo(zoomTo);
}
}
}
インスペクターの設定
- 自販機・ゴミ箱など、拡大できるオブジェクトに
ZoomObjectスクリプトをアタッチ ZoomToに切り替え先(例:VendingMachineZoom)を設定- UIボタンの OnClick に
ZoomObject → OnClick()を割り当てる - 戻るボタン(下矢印)の OnClick に
BackgroundManager → GoBack()を設定
動作チェックポイント
- オブジェクトをクリックすると拡大背景に切り替わる
- 拡大時は 左右ボタンが非表示、下ボタンが表示になる
- 戻るボタンで元の背景に戻れる
🎥 動作例動画
まとめ
今回は、オブジェクトをクリックして拡大画面に切り替える仕組みを実装しました。
✅次回は、拡大画面を更に拡大する「2段階拡大」と、扉を開ける/閉めるなど表示を切り替える方法を解説します👇




コメント