[문제]
[문제 상황]
RenderSettings.skybox =skyBox;
DynamicGI.UpdateEnvironment();
위의 메서드를 통해서 스카이 박스를 바꾸려 하는데 바뀌지 않았다 .
[해결]
[원인]
이유는 해당 메서드를 Init에서 실행해주었는데 (Awake와 비슷한 타이밍에 호출 되었을듯)
씬의 이동 방식이 그전씬 => 로딩 => 모든 과정이 완료(Init에서 완료를 처리함) =>씬이 활성화
의 순서였다. 그렇기에 씬이 완전히 로드 되기 전 , 즉 Loading씬의 SkyBox를 바꾸고 있던 것이다 .
이는 다음의 메서드로 해결하였다
IEnumerator SetSkyBox(Material skyBox)
{
yield return new WaitUntil(()=>SceneManager.GetActiveScene().name== AllEnums.SceneType.Game_Rhythm.ToString());
RenderSettings.skybox =skyBox;
DynamicGI.UpdateEnvironment();
}
=>현재씬이 활성화 되기까지 대기한다음 바꾸어주게 하였다
'유니티' 카테고리의 다른 글
[ 유니티 ].Net 완전정복 (0) | 2023.06.16 |
---|---|
[ 유니티 ]Scriptable Object 실행중 저장하기 (1) | 2023.04.07 |
[ 유니티 ] 곡 별 점수를 PlayerPrefs에 저장하기 (0) | 2023.04.05 |
[ 유니티 ] 자식 오브젝트 삭제하기 (0) | 2023.04.04 |
[ 유니티 ] 유니티 2021.3.16f1 설치 오류 (0) | 2023.03.29 |