Unityでシーンを切り替える方法(スクリプト)を説明していきます。
タイトルシーン→ゲームシーン→リザルトシーン
と、シーンを分けることで、ゲームの管理のしやすさがアップします。
シーンの作成
シーン切り替えを行うために、まずシーンを複数用意します。
・画像で説明
・テキストで説明
1.「Scenes」などのフォルダが並ぶAssetsエリアで、右クリック。
2.「Create」→「Scene」の順でクリック。
3.「TitleScene」という名称にする。
4.1、2と同じ手順でSceneを作成。
5.「PlayScene」という名称にする。
6.完了。
シーンの登録
シーン切り替えを行うために、シーンをUnityに登録します。
登録が行われたシーンのみ切り替えが可能になります。
・画像で説明
・テキストで説明
1.先ほど作成した「TitleScene」をダブルクリックして、シーンを開きます。
(シーンが開かれると、左上の「Hierarchy」の下に、「TitleScene」と
明記されます。)
2.画面上のタブ(「File」「Edit」「Assets」などが並ぶタブ)から、
「File」を選択する。
3.「File」→「Build Setting...」を選択。
4.「Build Settings」というポップアップが表示されたら、
Scenes In Buildの下にある「Add Open Scenes」ボタンを押す。
これでシーンの登録完了。
5.「PlayScene」も同様に登録するので、
「PlayScene」をダブルクリックして、シーンを開く。
6.2~4と同じ動作をする。
(登録が完了すれば、Scenes in Buildに「TitleScene」「PlayScene」
が並んでいる状態となる。)
7.完了。
シーンの違いを作成
シーン切り替え後、シーンが切り替わったことが分かるように
シーンごとに違いを作っておきます。
・画像で説明
・テキストで説明
1.「TitleScene」を開く。
2.左上の「Hierarchy」→「TitleScene」の下の空欄を右クリック。
「3D Object」→「Cube」を選択。
3.作成された「Cube」を選択。
右側に「Inspector」という欄が表示されるので、
その「Transform」→「X」「Y」「Z」の値を0にする。
4.Ctrl + S で保存。
5.「PlayScene」を開く。
6.左上の「Hierarchy」→「PlayScene」の下の空欄を右クリック。
「3D Object」→「Capsule」を選択。
7.作成された「Capsule」を選択。
右側に「Inspector」という欄が表示されるので、
その「Transform」→「X」「Y」「Z」の値を0にする。
8.Ctrl + S で保存。
9.完了。
シーン切り替え(スクリプト)
スクリプトを作成し、シーンの切り替えを行っていきます。
・テキストで説明
1.「TitleScene」を開く。
2.シーンを作ったAssetsエリアに、新しいスクリプトを作成。
(右クリック→「Create」→「C# Script」
TitleSceneChangeなどの名前にする。)
3.「TitleSceneChange」をダブルクリックで開く。
4.以下のスクリプトをコピーして貼り付ける。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class TitleSceneChange : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { // Spaceキーが押されたら if (Input.GetKeyDown(KeyCode.Space)) { // PlaySceneに切り替え SceneManager.LoadScene("PlayScene"); } } }
・スクリプト解説
// Spaceキーが押されたら if (Input.GetKeyDown(KeyCode.Space)) { // 処理 }
1.キー入力を受け付ける処理。
2.「KeyCode.Space」 = スペースキー を表す。
3.スペースキーが押されたら、// 処理という部分に描かれた処理を
実行する。
4.Aキーに変更したい場合は、
「KeyCode.A」とする。「KeyCode.~」~の部分を変更する。
// PlaySceneに切り替え SceneManager.LoadScene("PlayScene");
1.シーンを切り替える処理。
2."PlayScene" = PlaySceneへ切り替え。
3.TitleSceneに変更したい場合は、
SceneManager.LoadScene("TitleScene");
シーン切り替え(実行)
シーン切り替えの準備が完了しましたので、
実際に実行して確認します。
・画像で説明
・テキストで説明
1.「TitleScene」を開く。
2.「TitleScene」の先ほど作成した「Cube」に「TitleSceneChange」の
スクリプトをアタッチします。
(「TitleSceneChange」を選択、ドラッグしてCubeにドロップ)
3.再生ボタンを押して実行。
4.四角いCubeが映っている状態。
そこで、スペースキーを押すと、縦に伸びた球が表示される。
→縦に伸びた球があるのは、PlaySceneなので、
正しくシーンが切り替わったとわかる。
5.完了。
おわりに
今回は、Unityのシーン切り替え方法を説明しました。
この記事が何かのお役に立てれば幸いです。
Web(frog blend)
・公式HP「ふろっぐぶれんどのゲームセンター」
・外部リンクまとめ