Unityアセットストア セール情報まとめはこちら
Unityアセットストア セール開催!

約300のアセットがお得に買える!
日替わりフラッシュセールのアセットが最大95%オフ!
今すぐチェック!

販売ページはこちら
ゲーム制作

【Unity】現在開いているシーン名を取得してロードする方法

【Unity】現在開いているシーン名を取得してロードする方法 アイキャッチ
記事内に広告が含まれています。
スポンサーリンク
赤かぶくん
赤かぶくん

リトライボタンを押してもシーンをロードできない。

どうしたら解決できるの?

まつぼん
まつぼん

そんなお悩みにお答えします!

Unityでゲーム制作をしていると、「リトライボタンを押してゲームを再開したい」という場面があります。

でもなぜかシーンをロードできないことがあります。

原因としてシーン名が間違っているときなどにエラーが起きがちです。

そんな時は、シーン名を取得してロードする方法が便利です。

本記事では、現在のシーン名を取得し、そのシーンをロードする方法をご紹介します。

スポンサーリンク

環境

Unity バージョン:6000.2.11f1

Windows11

スポンサーリンク

シーンをロードする一般的な方法

以下が一般的に使われているコードです。

SceneManager.LoadScene("SceneName")

実装はとても簡単ですが、プロジェクトのシーン名を変更したり、上記コードの”SceneName”を間違えるとうまくロードできません。

スポンサーリンク

現在のシーン名を取得してロードする方法

現在アクティブになっているシーンの名前を取得したい場合は、次のコードを使います。

SceneManager.GetActiveScene().name

これで簡単に、今プレイしているシーンの名前を取得できます。

スポンサーリンク

リトライボタンで現在のシーンをロードする方法

Unityでは 「SceneManager.LoadScene()」 を使うことで、指定したシーンをロードできます。

その際、現在のシーン名をそのまま渡してしまえばリトライできます。

具体例は以下のとおりです。

using UnityEngine;
using UnityEngine.SceneManagement;

public class RetryManager : MonoBehaviour
{
    public void Retry()
    {
        string currentScene = SceneManager.GetActiveScene().name;
        SceneManager.LoadScene(currentScene);
    }
}

これで、現在のシーン名を取得してロードが可能です。

次に、Unityエディターで設定していきましょう。

手順は以下のとおりです。

  1. RetryManager.cs を作成し、ゲームオブジェクトにアタッチする
  2. ヒエラルキーから Button を選択し、OnClick() の設定を開く
  3. 「+」ボタンでイベントを追加
  4. RetryManager をアタッチしたオブジェクトをドラッグして登録
  5. 関数一覧から RetryManager → Retry() を選択
  6. メニュー「Build Profiles」→「Scene List」に該当のシーンを追加する

これで、ボタンをクリックするとリトライできるようになります。

スポンサーリンク

【Unity】現在開いているシーン名を取得してロードする方法 まとめ

まとめアイキャッチ

本記事では、現在のシーン名を取得し、そのシーンをロードする方法をご紹介しました。

Unityでシーンをロードする時は、「SceneManager.LoadScene(“SceneName”)」のコードを利用するのが簡単です。

ただ、シーンの名前が間違っていたりするとうまくロードできません。

そんな時は、「SceneManager.GetActiveScene().name」でシーン名を取得してロードすると便利です。

本記事が、皆さんの参考になれば幸いです。

ゲームプランナーに必要な知識と技術を身につける
シェアする
まつぼんをフォローする
スポンサーリンク
タイトルとURLをコピーしました