using UnityEngine.SceneManagement;
//0 인덱스 로드
SceneManager.LoadScene(0);
//현재 Scene 로드
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
//다음 Scene 로드
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
SceneManager.UnloadScene 함수를 쓴다.
SceneManager.UnloadScene();
SceneManager.UnloadSceneAsync(index);
AssetReference를 사용하려면 Addressable 라이브러리가 있어야 한다.

addressable을 설치한다.

이후 groups 설정하면 된다.
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
//클래스 내부
public AssetReference scenes;
AsyncOperation op =
scenes.LoadSceneAsync(LoadSceneMode.Additive, bool activateOnLoad);
매개변수1
매개변수2
이후에 op.isDone으로 아직 끝났는지 안끝났는지 판단 가능
op.allowSceneActivation = true; //scene 장면 활성화
(DynamicGI.UpdateEnvironment)
Additive로 씬을 올리고 활성 씬을 바꾸면, 화면이 어두워지거나 그림자가 과하게 진해지는(harsh) 경우가 있다.
원인은 활성 씬을 바꿔도 환경광(Ambient) 이 자동으로 다시 계산되지 않기 때문이다.
using UnityEngine; // DynamicGI
using UnityEngine.SceneManagement;
//Additive로 올린 씬을 활성 씬으로 지정
SceneManager.SetActiveScene(loadedScene);
//활성 씬 기준으로 환경광(Ambient/Reflection) 다시 계산
DynamicGI.UpdateEnvironment();
왜 필요한가
SetActiveScene() 은 "주인공 씬"만 바꿀 뿐, Ambient Probe는 갱신 안 함.additive 전환에선 SetActiveScene함수와 DynamicGI.UpdateEnvironment 함수를 세트로 호출해야 함.
주의