見出し画像

2-9 シーンの基礎知識

今回はUnityでのシーンの操作について学んでいきます。
シーンをうまく管理することで、複雑なゲームやアプリケーションを効率的に構築することができます。
Unityにおけるシーンは、例えばタイトルとゲーム画面、リザルト画面
といった見た目や扱うデータがガラッと変わる単位がシーンになります。
それでは、さっそくシーンの作成〜遷移方法について見ていきましょう。


シーンの作成方法

新しいシーンを作成する

デフォルトで「Scenes」というフォルダがあるのでそこに
右クリックメニューから「Create」>「Scene」を選択します。

新しいシーンが作成されるので任意の名前を入力します。
ここでは「TitleScene」という名前にしておきましょう。

シーンをダブルクリックすると、新しいシーンが開きます。
ヒエラルキーのシーン名が変更されているので確認してみましょう。

シーン間のデータの引き継ぎには別途処理が必要なので
扱うデータが大きく変わる単位でシーンを管理すると良いでしょう。

シーンの保存方法

違いを確認するためにSphereのオブジェクトを作成しておきます。

メニューバーから「File」>「Save Scene」を選択します。
対応したショートカットキーで保存すると楽です。

Cmd + S(Win: CTRL + S)

変更があった場合は
ヒエラルキービューのシーン名の右側のアスタリスクが消えて
シーンが保存されたことを確認できます。

保存前
保存後

シーンの管理

ビルド設定でシーンを管理する

メニューバーから「File」>「Build Settings」を選択します。

「Scenes In Build」セクションにシーンを追加します。

シーンの追加は、プロジェクトビューからシーンファイルをドラッグ&ドロップすることで行います。

追加した状態

スクリプトからのシーンの遷移方法

シーンディレクタースクリプトの追加

例として、SampleSceneCreate Emptyから空のオブジェクトを作成して

そのオブジェクトにSceneDirectorというスクリプトを追加して開きます。

ダブルクリックで開きます

シーンマネージャーの使用

シーン遷移にはSceneManagerクラスを使用するので

using UnityEngine.SceneManagement;

をスクリプトの冒頭に追加します。

シーンのロード

SceneManager.LoadScene("シーン名");
を使用してシーンをロードします。

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

public class SceneChanger : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            SceneManager.LoadScene("TitleScene");
        }
    }
}

スペースキーが押下されると
TitleSceneという名前のシーンがロードされます。

シーンの遷移

SampleSceneを開いて、シーンを再生します。
スペースキーを押して、TitleSceneに遷移することを、ヒエラルキーウィンドウの上部で確認してみましょう。

ここに現在のシーン名が表示されます

シーンの順序とインデックス

シーンは「File」>「Build Settings」リストの上から順にビルドされ
インデックスが割り当てられます。
SceneManager.LoadScene(0);
のようにインデックスを指定してシーンをロードすることも可能です。

まとめ

以上が、Unityでのシーンの作成と遷移についての説明です。
シーンを効果的に管理し、遷移させることで複雑なゲームやアプリケーションの構築が可能になります。
それでは、次のセクションに進みましょう!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?