facebook twitter hatena line email

Unity/Addressable/シーンロード

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

シーンを作成してAddressable登録

  1. Project内でSceneを作成する
  2. Sceneを選択し、Inspectorで、Addressableにチェックを付ける
  3. Addressableをビルドする(Unityメインメニュー/Window/Asset Management/Addressables/Groups/Build/New Build/Default Build Script

参考:https://soft-rime.com/post-3267/

シーンをロード

using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.ResourceManagement.ResourceProviders;

public class SceneLoadScene : MonoBehaviour
{
    [SerializeField]
    Button loadButton;
    [SerializeField]
    Button unloadButton;
    AsyncOperationHandle<SceneInstance> handle;
    void Start()
    {
        loadButton.onClick.AddListener(() => {
            StartCoroutine(LoadScene());
        });
        unloadButton.onClick.AddListener(() => {
            Addressables.UnloadSceneAsync(handle);
        });
    }
    IEnumerator LoadScene()
    {
        handle = Addressables.LoadSceneAsync("Assets/Scenes/SceneLoadSample2Scene.unity", UnityEngine.SceneManagement.LoadSceneMode.Additive);
        yield return handle;
    }
}

参考:https://light11.hatenadiary.com/entry/2019/12/30/222302

シーンを追加でなく遷移させる場合

handle = Addressables.LoadSceneAsync("Assets/Scenes/SceneLoadSample2Scene.unity");