Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity シーン画面を切り替える方法!Buttonをクリックするだけで出来る! Unity学習④

今回はシーン画面の切り替えについての説明になります。
最初のスタート画面からのゲームプレイシーンの切り替えに使えると思います。

※動画での説明が好みの方は下記動画をご覧ください。
ブログ記事での説明がいい方は、そのまま読み進めてください。

youtu.be



どーもこんばんは!ユーキやんです!
最近はシューティングゲーム
作っていて来月にはApp StoreAndroid
アプリを出すぞって目標を持っています。

ゲーム作りって...
本当エラーばかり泣
いつも試行錯誤の繰り返しとともに
エラーの解消にかなりの時間がかかっています。

と言う事で本題に入っていきましょう!

シーン画面を切り替える方法!Buttonをクリックするだけで出来る!

f:id:Phoenix9056:20200420174340p:plain

※シーンが2つある人、もしくはシーンを切り替えだけを知りたい人は
流しながら読んで行ってください。勉強のために覚えておくって人は
同じように作っていただけると幸いです。

まず始めに、シーンを二つ作っていきましょう。

f:id:Phoenix9056:20200307221755j:plain

POINT①のHieratchyの+を選択して3DGameObject⇨Planeと
Cubeを作ってください。
Cubeの色はDirectional Lightから分かりやすいように色を変えています。

②にSample Sceneの上でマウスを右クリック、その後に③のSave Scene As をクリック。

※GameObjectの作成方法が分かりにくい人や色の変え方は下記記事を参考にしてください。

phoenix9056.hatenablog.com

f:id:Phoenix9056:20200307225018j:plain

POINT次に、①のSave AsにCube Scene と名前をつけます(自分が好きな名前でもいいです。)
②Whereは保存場所Assetに保存しましょう。
③の最後にSaveをクリックするとProject内のAssetの中にCubeSceneと言うシーンが保存されます。
これで一つ目のシーンが完成です。

f:id:Phoenix9056:20200307225850j:plain

POINT①のCubeSceneをマウスで右クリックします。
次に②のAdd New Sceneをクリックしてください。
そうすると③の新しくシーンが追加されます。
※Hierarchy内にシーンが二つあるとシーンが混合してしまいとても分かりづらいので次のステップでシーンを一つにします。

f:id:Phoenix9056:20200307230527j:plain

POINT①のCubeSceneを右クリックします。
次に②のRemove Sceneをクリックして『CubeScene』を消します。
ちなみにCubeSceneはProjectのAsset内に保存してあるので消しても大丈夫です。

f:id:Phoenix9056:20200308055355j:plain

POINT今から二つ目のシーン作成をしていきます。
またHierarchyの+から3D GameObject⇨Planeと今度はSphereを作成してください。
そうしたら先程の手順と同じようにSave Scene AsからAssetに『SphereScene』と名前を
つけて保存してください。

f:id:Phoenix9056:20200308055010j:plain

POINT次に左上のFileからBuild Settings を選択します。
シーンの登録をしてシーン遷移を行えるようにします。

f:id:Phoenix9056:20200308054808j:plain

POINTそうしたら、Scenes in Buildの枠内に
先程作成してProjectのAssetに保存してある『CubeScene』と
『SphereScene』をマウスでドラッグドロップしてください。
※この作業を行ってシーンを一つのセット内にまとめておかないと
シーン遷移のプログラムを組んでもシーン遷移することが出来ません。

これでようやくシーンを二つ作ることが出来ました。

次はButtonを設置してシーンが切り替わるようにしていきましょう!

f:id:Phoenix9056:20200308062325j:plain

POINTHierarchyの①の+を選択して
今度は②のUIを選択、そうしたら③のButtonをクリックしてButtonを作成しましょう。

f:id:Phoenix9056:20200308062610j:plain

POINT①のButtonの横にある矢印をクリックすると下に②のTextが表示されます。
③のTextのInspector内のTextの中に自分が表示させたい文字を入力してください。
そうすると④のように表示されます。

それでは!シーン遷移させるためのスクリプトを書いていきましょう。

※今回はButtonをクリックするとシーンが切り替わるスクリプトを書いていきます。

ProjectのAsset内でマウスの右クリックを押してCreate⇨C#Script⇨名前をCubeSceneにしましょう。
次に書くスクリプトを下記と同じにするかコピー&ペーストしてください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class CubeScene : MonoBehaviour
{
    public void ButtonClicked()
    {
        SceneManager.LoadScene("CubeScene");
    }
}


後少しで終わりなので!最後は一気に説明していきます。

f:id:Phoenix9056:20200308104034j:plain

POINT①の空のGameObjectをHierarchyの+からCreate Emptyから
作成してください。名前はCubeSceneButtonにしました。

次に②の先程作ったゲームスクリプトを①のGameObjectにドラッグ&ドロップしてアタッチします。

そして③のButtonをクリックしてInspectorにある④のOn Click ()の+をクリックします。

その後に⑤にHierarchyに先程作った①のGameObjectを選択、⑥をクリックして⑦CubeSceneを選択。
最後に⑧のButton Clicked()を選択して終わりです。

上手く行っていれば再生ボタンを押してボタンをクリックするとシーン遷移(画面が切り替わります)。
切り替わったシーンにも同じ容量で戻るボタンを作ってみるのも面白いと思います。


今日はこんな感じでシーン遷移の方法の紹介でした。
見てくださりありがとうございます。


関連記事

phoenix9056.hatenablog.com

phoenix9056.hatenablog.com

phoenix9056.hatenablog.com

phoenix9056.hatenablog.com

phoenix9056.hatenablog.com

phoenix9056.hatenablog.com