うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】SceneAsset はシリアライズしても UnityEditor 以外では利用できない

以下のようにフィールドを定義して、SceneAsset をセットすることができる

public class SampleMonoBehaviour : MonoBehaviour
{
    [SerializeField]
    private UnityEngine.Object _object;
}

しかし、SceneAsset は UnityEditor でしか利用できないため、実機で参照を取得しようとしても null になる

using UnityEngine;

namespace UnityEditor
{
  public class SceneAsset : Object
  {
    private SceneAsset()
    {
    }
  }
}

そのため、Build Settings の Scenes in Build に Scene を追加してロードするか

Scene のアセットバンドルをロードして SceneManager から読み込む必要がある