
2-9 シーンの基礎知識
今回はUnityでのシーンの操作について学んでいきます。
シーンをうまく管理することで、複雑なゲームやアプリケーションを効率的に構築することができます。
Unityにおけるシーンは、例えばタイトルとゲーム画面、リザルト画面
といった見た目や扱うデータがガラッと変わる単位がシーンになります。
それでは、さっそくシーンの作成〜遷移方法について見ていきましょう。
シーンの作成方法
新しいシーンを作成する
デフォルトで「Scenes」というフォルダがあるのでそこに
右クリックメニューから「Create」>「Scene」を選択します。


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

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

シーン間のデータの引き継ぎには別途処理が必要なので
扱うデータが大きく変わる単位でシーンを管理すると良いでしょう。
シーンの保存方法
違いを確認するためにSphereのオブジェクトを作成しておきます。
メニューバーから「File」>「Save Scene」を選択します。
対応したショートカットキーで保存すると楽です。

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


シーンの管理
ビルド設定でシーンを管理する
メニューバーから「File」>「Build Settings」を選択します。

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

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


スクリプトからのシーンの遷移方法
シーンディレクタースクリプトの追加
例として、SampleSceneにCreate 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でのシーンの作成と遷移についての説明です。
シーンを効果的に管理し、遷移させることで複雑なゲームやアプリケーションの構築が可能になります。
それでは、次のセクションに進みましょう!