君がゲームを作る!Unityゲーム開発入門
第51回 町の中に入ってみよう

シーンの切り替え方を覚えよう!

みなさん、こんにちは!

風邪のひきはじめで喉が痛いとき、龍角散よりも「フェロップス・トローチ」なる薬が鬼のように効くことを知っているあらたまです。

さて今日は「君がゲームを作る!Unityゲーム開発入門」の第51回目です。

おさらい

前回 は山にぶつかったときに効果音を鳴らすようにしましたね。

今日は、屋外から町に入れるようにしたいと思います!

町を配置する

まずは町のゲームオブジェクトを配置しましょう。

プロジェクトウィンドウで「Sprites」のフォルダを開き、「WorldMap-B」の小さい▶をクリックします。

町に使いたいスプライトをシーンウィンドウにドラッグ&ドロップします。

町のゲームオブジェクトがシーンに配置されました。
あとでわかりやすいようにゲームオブジェクトの名前を「Town」に変更しておきましょう。

続いてソーティングレイヤーも変更しておきましょう。
ソーティングレイヤーについては第44回 キャラクターを配置するで 詳しく説明していますので、良ければそちらも参照してくださいね。

「Sorting Layer」欄の「Default」をクリックし、「Add Sorting Layer ...」をクリックします。

「Default」と「Characters」の間に「Triggers」というソーティングレイヤーを作成します。

もう一度ヒエラルキーウィンドウで「Town」を選択し、「Sorting Layer」欄を「Triggers」に変更します。

コンポーネントの追加

キャラクターが町に接触したときに検出できるように、コンポーネントを追加します。

「Town」ゲームオブジェクトが選択された状態で、 インスペクターウィンドウで「Add Component」をクリックします。

「Physics 2D」をクリックします。

「Box Collider 2D」をクリックします。

追加された「Box Collider 2D」コンポーネントの「Is Trigger」のチェックを入れておきます。

シーン切り替えスクリプトの作成

続いて、シーンの切り替えを行うスクリプトファイルを追加します。

プロジェクトウィンドウで「Scripts」のフォルダを選択し、 「Assets」メニューの「Create」から「C# Script」をクリックします。

追加されたスクリプトファイルの名前をわかりやすいように 「SceneControl」に変更しておきましょう。

プロジェクトウィンドウで「SceneControl」ファイルを選択し、 インスペクターウィンドウで「Open」をクリックします。

下記のように太字の部分を追加してください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneControl : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }

    void OnTriggerEnter2D(Collider2D col)
    {
        // 勇者が自分に接触した
        if (col.gameObject.name == "yusya")
        {
            // 自分は"Town"である
            if (gameObject.name== "Town")
            {
                // Townシーンに切り替える
                SceneManager.LoadScene("Town");
            }
        }
    }
}

町にスクリプトコンポーネントの追加

続いて、いま作成したスクリプトを町に追加します。

ヒエラルキーウィンドウで「Town」を選択し、インスペクターウィンドウで「Add Component」をクリックします。

「Scripts」をクリックします。

「Scene Control」をクリックします。

ビルドセッティングにシーンを追加

続いて、ビルドセッティングスにTownシーンを追加します。

ビルドセッティングス(Build Settings)

ビルド(Build)」とは「造る」という意味の英単語です。

ビルドセッティングスはゲームを造り上げるときの設定、ということですね。
Unityであなたがプログラミングしたものから、ゲームファイルを造り上げるときの設定です。

Unityでは「シーン」ごとにプログラムを作成していますので、 それらのうちどの「シーン」をゲームファイルに含むかを設定します。

「File」メニューの「Build Settings...」をクリックします。

プロジェクトウィンドウで「Scene」フォルダを開き、「Town」シーンを ビルドセッティングウィンドウにドラッグ&ドロップします。

右上の「×」ボタンをクリックして、ビルドセッティングウィンドウを閉じます。

テストプレイで動作確認をする

では、テストプレイして動作を確認してみましょう!
上部中央の▶ボタンを押して、プレイモードに入ります。

キャラクターを操作して、町へ接触させると。。

町の中に画面が変わりました!

今回はここまでです!

次回は町にもキャラクターを表示するようにしてみたいと思います。

次回へ続く。