![見出し画像](https://assets.st-note.com/production/uploads/images/124961247/rectangle_large_type_2_19e97cdaf01b8af69fef8492f1ed6685.png?width=1200)
Unityで画面遷移をしてみる
1. Unityで画面遷移をしてみる
Unityはゲームを効率よく開発するゲームエンジンの一つである。このツールを使用すると、ツール上でゲーム開発が可能である。
今回は、画面遷移をUnityを使用してやってみようと思う。
環境:Mac OS venetura
Unityのバージョン:2022.3.15f1
2. Unityで画面遷移を実現しよう
2.1 新規プロジェクトを作成する
まず、新規プロジェクトを作成する。Unity Hubを開き、「New Project」を押下する。
![](https://assets.st-note.com/img/1702898819060-ACDwms0V0o.png?width=1200)
次に、プロジェクトを作成する。
・All Templateから3D Coreを選択し、「Create Project」を選択する。
・Create projectを選択する。
![](https://assets.st-note.com/img/1702898898269-gMOQYRCiyd.png?width=1200)
2.2 シーンを作成する
遷移する画面のSceneを作成する。「File」から「New Scene」を選択し、新規のSceneを作成する。
![](https://assets.st-note.com/img/1702899449761-Gj0PjvZx3c.png)
「Basic (Build-in)」を選択し、「Create」を選択する。
![](https://assets.st-note.com/img/1702899505185-0cdDr850VA.png?width=1200)
作成すると、Hierarchyに「Untitiled」というSceneが作成できる。名称を変更し、わかりやすい名前にする。Ctrl + sで保存画面を開く。
![](https://assets.st-note.com/img/1702899679222-Wolo1QuAv9.png)
Save AsにNewSceneと入力し、新しいシーンを作成する。
![](https://assets.st-note.com/img/1702899934093-wTGeaplUcs.png)
先ほどのシーンの名前が変更されていることを確認する。
![](https://assets.st-note.com/img/1702899991981-fvStNZ5wVD.png)
2.3 もう一つシーンを作成する
先ほどと同じ手順で、もう一つのシーンを作成する。筆者は、BaseSceneという名前で作成した。
ここまでの操作内容を確認する。
(1) 新規プロジェクトを作成
(2) NewSceneとBaseSceneの二つのシーンを作成した。
今回は、BaseSceneからNewSceneへ画面遷移することを目標とする。Assets/Scenesの中にあるシーンを確認する。
![](https://assets.st-note.com/img/1702900303194-b51YrB43pR.png)
2.4 シーンを登録する
次は、作成したSceneをUnityに登録する。「File」から「Build Settings」を選択する。
![](https://assets.st-note.com/img/1702900937828-qXJkFZEceJ.png)
Build Settingsを開き、先ほど作成したSceneを選択し、Build Settingsにドラッグアンドドロップする。
![](https://assets.st-note.com/img/1702901099156-K1YVHNIdWc.png?width=1200)
![](https://assets.st-note.com/img/1702901060825-d8GrrBpxl6.png?width=1200)
上記の通り、作成したSceneが登録できればOKである。
2.5 目印となるオブジェクトを配置する
このままの状態だと、同じ画面のため、画面を遷移しても切り替わりがわからない。そこで、オブジェクトを配置して目印をつける。
BaseSceneには、Cubeを配置する。Hierarchyの➕ボタンを選択し、から3D ObjectのCubeを選択する。
![](https://assets.st-note.com/img/1702901321891-qXj94jreYF.png?width=1200)
Cubeを選択すると、下記のようにCubeが配置されていることがわかる。
![](https://assets.st-note.com/img/1702901400123-VNSsya1ZR7.png?width=1200)
NewSceneには、Sphereを配置する。Hierarchyの➕ボタンを選択し、3DObjectからSphereを選択する。
![](https://assets.st-note.com/img/1702901465331-OwG4yKpYXX.png?width=1200)
選択すると、Sphereが作成される。
![](https://assets.st-note.com/img/1702901512281-xsYeU5IG17.png?width=1200)
2.6 C#スクリプトを作成する
画面遷移の制御は、C#のスクリプトから行う。Projectビューで右クリックを押し、CreateからC# Scriptを選択する。
![](https://assets.st-note.com/img/1702901999205-O4laJv0j76.png?width=1200)
ファイル名は、SceneChangeとした。
![](https://assets.st-note.com/img/1702902166749-xQmBD3odOm.png)
ファイルをダブルクリックすると、エディタが立ち上がる。初期状態のコードは以下のようになっている。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SceneChange : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
今回、画面遷移は、Start()にinvokeメソッドを追加して実現する。Unityにおいて、invokeとは、指定した時間遅延の後に実行するコードを指定するものである。今回は、invokeで3秒後に画面遷移を行うと記述する。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//Usingを追加
using UnityEngine.SceneManagement;
public class SceneChange : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//3s後に画面遷移する
Invoke("ChangeNewScene", 3.0f);
}
// Update is called once per frame
void Update()
{
}
void ChangeNewScene()
{
//NewSceneを呼び出す
SceneManager.LoadScene("NewScene");
}
}
上記は、画面遷移のプログラムの記述例である。下記に処理の内容を振り返る。
(1) ゲームを開始するとStartメソッドを実行する
(2) Invokeを使用してゲームを開始して3秒後にChangeNewSceneメソッドを実行する。
(3) ChangeNewSceneメソッドを実行し、NewSceneをロードする。
2.7 Scriptをアタッチする
作成したC#のスクリプトをシーンに読み込んで実行する。BaseSceneを開き、Game Objectを作成する。Unityでは、GameObjectにスクリプトなどを割り当てて実行することができる。
Hierarchyから➕ボタンを押して、「Create Empty」を選択する。
![](https://assets.st-note.com/img/1702903276924-hB4UuQWx7t.png)
選択すると、GameObjectが作成される。
![](https://assets.st-note.com/img/1702903320192-HmSd1Khryl.png)
GameObjectを選択した状態で、Inspectorビューを確認すると、「Add Component」と書かれているボタンがある。そこを選択し、先ほど作成したScene Changeを選択する。検索欄に作成した名称を入れると、自動的に現れる。
![](https://assets.st-note.com/img/1702903490801-3QVNqvAQKg.png?width=1200)
選択すると、InspectorビューにScene Changeのスクリプトが登録される。
![](https://assets.st-note.com/img/1702903566546-lapcsrngSA.png)
2.8 実行して確かめよう
準備は完了したので、実行して確かめてみましょう。BaseSceneを読み込んだ状態で、実行ボタンを押してみましょう。
![](https://assets.st-note.com/img/1702903724960-CH2G4dlo9Q.png)
実行すると、CubeのオブジェクトからSphereのオブジェクトに画面が遷移することがわかります。
3. 終わりに
今回は、Unityでの簡単な画面遷移のやり方を手順立ててまとめた。より深く学ぶことで、例えば、ゲームタイトルからゲーム画面へ遷移するといったことも可能である。興味がある人は試してみてほしい。