LoginSignup
0
0

More than 3 years have passed since last update.

【Unity】Sceneを切り替えるコード

Last updated at Posted at 2020-02-14

これでスタート画面やエンド画面を作ることができる!!

関連


クリア画面で、リターンキー押下でスタート画面へ遷移したい場合

下記の例では、クリア画面で、リターンキー押下で、
SceneStartというSceneへ遷移するようにしている。

clear.cs

using UnityEngine.SceneManagement; //ここ必要
using UnityEngine;

public class clear : MonoBehaviour
{
    void Update()
    {
        //ここから
        if (Input.GetKey(KeyCode.Return)) //リターンキー押下時に
        {
            SceneManager.LoadScene("SceneStart"); //"SceneStart"というSceneへ遷移する
        }
        //ここまで
    }
}

プレイヤーが、Targetというタグに触れたらゲームオーバーのSceneへ遷移する場合の記述

また、
プレイヤーがTargetというタグに触れたらゲームオーバーのSceneへ遷移したい場合は下図参照


        if (col.gameObject.tag == "Target") {
            SceneManager.LoadScene("SceneEnd");
        }

スタート画面で、ボタン押下時にゲーム画面へ遷移する場合

btn_start.cs

using UnityEngine;
using UnityEngine.SceneManagement;

public class btn_start : MonoBehaviour
{
    public void OnClick()
    {
        SceneManager.LoadScene("GameScene"); //ここに遷移先のSceneファイル名を記入する
    }
}

ボタンの設定の仕方メモ

  • ボタンを追加
  • ボタンのコンポーネントの中で「Button」コンポーネントがあるので、そこにリストを追加
  • スクリプトがアタッチされているオブジェクトをアタッチして、
  • Scene遷移を記述しているメソッドを指定する

実行時は、ビルド設定で、Sceneファイルを含めておく必要があるので、スクリプトを書いて満足しないように!!


おまけ:FPSゲームなどでマウスカーソル非表示後のエンドシーンでマウスカーソルを復活させる場合

  • StandardAssetsのFPSコントローラーを使っていると、よくぶつかる問題です。
  • 下記スクリプトは単体として記述していますが、実際には、エンドシーンのリトライなどのボタン押下のスクリプトに織り交ぜても良いと思います。
cursorFormat.cs
using UnityEngine;

public class cursorFormat : MonoBehaviour
{
    void Update()
    {
        Cursor.lockState = CursorLockMode.None; //マウスカーソルの設定を初期化して、
        Cursor.visible = true; //マウスカーソルを表示する
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0