Unity

Unityでシーン間を移動する

前回までで忍者を移動させて物体との当たり判定を行うことができました。

今回は宇宙船に触れると次のステージに飛ぶようにします。

1.
次のステージを作ります。
File → New Scene
名前をStage2 にして保存しました。

2.
適当にブロックPrefabをD&Dしてステージを作る。

3.
GameSceneをダブルクリックで開いてNinjaMoveスクリプトに以下を追加。

冒頭に
using UnityEngine.SceneManagement;

宇宙船との当たり判定の処理のところに

//ship1との当たり判定
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "nextstage")
{
Debug.Log("GOOD");
SceneManager.LoadScene("Stage2"); //←追加
}

}

4.
Build Settingでシーンの登録をしないといけないらしい。
File → Build Settings...

プロジェクトビューのGame SceneとStage2を上の欄にD&D。
これで登録完了~

5.
実行してみるぜ!

やったー
宇宙船に触れるとステージ2に移動できました!

次はステージ2からステージ1に戻れるかやってみました。
6.
ステージ2に配置する忍者をPrefabで作成する。
ヒエラルキービューのstandをプロジェクトビューにD&DしてPrefab作成。

7.
ステージ2のシーンに忍者のPrefabをD&Dで配置。
触れるとステージ1に戻る青い四角の画像をD&Dで配置。

8.
この青の四角オブジェクトにステージ1の宇宙船と同じように当たり判定を設定する。
Add Component → Physics2D → Box Collider2D
インスペクタビューのIs Trigger にチェックを入れる。
beforestageというタグを付ける。

9.
今度は忍者側。
NinjaMoveスクリプトの宇宙船との当たり判定の場所に以下を追加。

//ship1との当たり判定
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "nextstage")
{
SceneManager.LoadScene("Stage2"); //ステージ2へ
}

if (other.tag == "beforestage")//追加部分。
{
SceneManager.LoadScene("GameScene"); //ステージ1へ
}

}

10.
実行してみる。

宇宙船に触れるとステージ2へ。
青い四角に触れるとステージ1へ。
バッチリ移動できたぜ!^0^

////////////////////////////////////////
ー広告ー



-Unity

© 2024 Bou.O The World Powered by AFFINGER5