コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】他のシーンのゲームオブジェクトの参照を Inspector で設定する方法

概要

上記のパッケージを Unity プロジェクトに追加すると
他のシーンのゲームオブジェクトの参照を Inspector で設定できるようになります

使い方

「Scene1」と「Scene2」という 2 つのシーンが存在しており、
Scene2 のゲームオブジェクトを Scene1 で参照したい場合、

Scene2 のゲームオブジェクトに「Guid Component」をアタッチしておき

using SaG.GuidReferences;
using UnityEngine;

public class Hoge : MonoBehaviour
{
    public GuidReference m_guidReference;
}

上記のような GuidReference のフィールドを持つコンポーネントを
Scene1 のゲームオブジェクトにアタッチして

Scene2 のゲームオブジェクトの参照を Inspector で設定します

using System.Collections;
using SaG.GuidReferences;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Hoge : MonoBehaviour
{
    public GuidReference m_guidReference;

    private IEnumerator Start()
    {
        // Scene2 を追加で読み込む
        SceneManager.LoadScene( "Scene2", LoadSceneMode.Additive );

        // 1 フレーム待つ必要がある
        yield return null;

        // Scene2 のゲームオブジェクトを参照する
        Debug.Log( m_guidReference.gameObject.name );
    }
}

あとは上記のようなコードを書くことで
他のシーンのゲームオブジェクトを参照できます

関連記事