본문 바로가기
Unity3D/Unity & C#

Unity & C# ~ Additive Load된 씬의 라이팅 세팅 가져오는 법

by 캬캬백곰 2023. 2. 9.
728x90

유니티 라이팅 세팅은 활성화된 씬의 세팅을 가져오는데

additive load된 씬은 활성화된 씬이 아니기 때문에 additive laod된 씬의 라이팅 정보를 가져오지 않는다.

그래서 additive load할 씬의 라이팅 정보를 가져와 적용할 때는 해당 씬을 활성화 시켜줘야 한다.

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class TestAdditiveSceneManager : MonoBehaviour
{
    [SerializeField] Button button;

    // Start is called before the first frame update
    void Start()
    {
        button.onClick.AddListener(()=>
        {
            OnClickButton();
        });

		// scene load가 완료되면 callback 호출
        SceneManager.sceneLoaded += SceneLoadComplete;
    }

    void OnClickButton()
    {
    	//버튼 클릭시 buildsetting에 등록된 2번 씬 로드
        SceneManager.LoadScene(2, LoadSceneMode.Additive);
    }

    void SceneLoadComplete(Scene scene, LoadSceneMode mode)
    {
        Debug.Log($"Scene Load Complete : {scene.name}, {mode}");
        
        //로드 완료된 씬을 활성화
        SceneManager.SetActiveScene(SceneManager.GetSceneByName(scene.name));

        Debug.Log($"Active Scene : {SceneManager.GetActiveScene().name}");
    }
}

 

- 참조

https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.SetActiveScene.html

728x90
반응형