Addressable Assets Systemを使ってシーンをロード(移動)する


ドキュメントを読んでいたら発見しました。
実際に使ってみた記録です。
ドキュメントのリンクを書いておきますが、変更される可能性があります。
アクセスできない場合は、PackegeManager の
View documentationで詳細を確認してみてください。
https://docs.unity3d.com/Packages/[email protected]/manual/index.html

Addressable Asset Systemをインストールする

Packagesフォルダーの中にあるmanifest.jsonに以下を追加します。

{
  "dependencies": {
    "com.unity.addressables": "0.3.5-preview",
  }
}

Libraryフォルダを削除します。
プロジェクトを開きます。
Addressable Assets Systemは、PackegeManagerUIでアップデートが可能なのでアップデートをしておきます。

ロードするシーンを作成する

新しいシーンを作成し、保存します。
名前はどんな名前でも問題ありません。

作成したシーンをAddressable Asset Systemに登録する

ウインドウ→アセット管理→Addressable Assetsをクリックします。

Addressblesというウインドウが出ます。
Create Addressables Settingをクリックします。
Default Local Group (Default)の上に作成したシーンをドラッグ・アンド・ドロップします。

シーンをロードするスクリプトを作成する

スクリプトを作成します。
ファイル名は「LoadScene」にします。
スクリプトを開いて、以下をコピペします。

using UnityEngine;
using UnityEngine.AddressableAssets;

public class LoadScene : MonoBehaviour {

    public AssetReference assetReference;

    public void Start()
    {
        Addressables.LoadScene(assetReference);
    }
}

シーンのアセットリファレンスを設定する

新しいシーンを作成します。
空のゲームオブジェクトを作成します。
スクリプトをアタッチします。
インスペクターでAssetReferenceにロードするシーンを設定します。

動作を確認する

再生します。ヒエラルキーでシーンの名前が変われば成功です