はじめに
前回、敵とゴールオブジェクトに当たり判定をつけました。今回はゴールをするとクリアシーンに遷移するようにします。
前回の記事
シーンの遷移
これまではずっとゲームシーンを作成していました。今回は新たにクリアシーンというものを作成することで、ゴールオブジェクトに🦀が当たるとゲームクリアという判定になり、クリアシーンへと遷移するようにします。
クリアシーンの追加
※忘れてましたが、シーンを追加する前に、今作成しているゲームシーンを名前を付けて登録しておけばよかったです。
新しいシーンは、ツールバーのFile > New Sceneから追加できます。
New Sceneをクリックすると、Sceneのテンプレートを選ぶことになります。
Basic 2Dを選択して「Create」
続いて追加したシーンに名前をつけて保存をしたいので、ヒエラルキーウィンドウにあるシーンの上で右クリックをして「Save Scene As」をクリックします。
バックグラウンドと「ゲームクリア」というテキストを足して簡易的なクリアシーンを作成しました。
テキストはヒエラルキーウィンドウで右クリックでここから足せます。UI Textが表示されなくてちょっと戸惑ったのですが、解消法は下に載せております。
UI > Legacy > Text
シーンの登録
ツールバーのFile > Build Settingsを選択します。選択すると以下の画像の画面が表示されるかと思います。
Scenes/SampleSceneはずっと作っていたゲーム画面のことです。(シーンの名前を変えて登録し忘れたのでこんなことになっている)
この画面のScenes In BuildのところにClearSceneをドラッグアンドドロップで追加します。
追加すると、右側に番号がふられるのですが、この番号順にスタートするということです。
つまり、ゲームシーンからスタートします。
遷移させるコードをかく
PlayerControllerに以下のコードを追加します。
(今はコンソールでゴールって表示されるようになっているはず。)
using UnityEngine.SceneManagement;
// ~省略~
private void OnTriggerEnter2D(Collider2D collision)
{
SceneManager.LoadScene("ClearScene");
}
クリアシーンに遷移するか確認
UI Textが表示されなかった問題
Render ModeをWorld Spaceに変更する必要がありました。
おわりに
クリアシーンへ到達する動画をとるまでに何回かしにました。
すごく簡易的ですが、ゲームっぽくなった気がします。