facebook twitter hatena line email

「Unity/Addressable/シーンロード」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(シーンを作成してAddressable登録)
(シーンをロード)
 
(同じ利用者による、間の5版が非表示)
行5: 行5:
  
 
参考:https://soft-rime.com/post-3267/
 
参考:https://soft-rime.com/post-3267/
 +
 +
==シーンをロード==
 +
<pre>
 +
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;
 +
    }
 +
}
 +
</pre>
 +
 +
参考:https://light11.hatenadiary.com/entry/2019/12/30/222302
 +
 +
==シーンを追加でなく遷移させる場合==
 +
handle = Addressables.LoadSceneAsync("Assets/Scenes/SceneLoadSample2Scene.unity");

2022年9月7日 (水) 19:04時点における最新版

シーンを作成して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");