์ฌ์ ๋ก๋ฉํ๋ ๊ธฐ๋ฅ์ ๊ตฌํ์ค์ธ๋ฐ ๋งต์ฌ์ ์ผ๋ฐ ๋ก๋ฉ, UI์ฌ์ additive๋ก ํด์ ๋ก๋ฉํ๋๊ฑธ ๊ตฌํํ๊ณ ์์ต๋๋ค.
๋๊ฐ์ ์ฌ์ด ์ ๋ถ ๋ก๋ฉ์ด ๋๋ฉด ์ฌ์ ํ์ฑํ ์ํค๊ณ ์ถ์๋ฐ additive๋ก ๋ถ๋ฌ์ค๋ ์ฌ์ progress๊ฐ ๊ณ์ 0์ธ๋ฐ ์๋ ์๋ additive๋ก ๋ถ๋ฌ์ค๋ ์ฌ์ asyncoperation์ย
์ด์ฉํด์ progress๋ฅผ ์ธก์ ํ ์ ์๋์?? ๋ฐ์๋ ์ฝ๋์ ๋๋ค.
ย ย private IEnumerator Loading()
ย ย {
ย ย ย ย yield return null;
ย ย ย ย List<AsyncOperation> ops = new List<AsyncOperation>();
ย ย ย ย ops.Add(SceneManager.LoadSceneAsync((int)_scene1));
ย ย ย ย ops.Add(SceneManager.LoadSceneAsync((int)_scene2,LoadSceneMode.Additive));
ย ย ย ย foreach (var op in ops)
ย ย ย ย {
ย ย ย ย ย ย op.allowSceneActivation = false;
ย ย ย ย }
ย ย ย ย yield return null;
ย ย ย ย // ์ด๋ถ๋ถ์ ๋จ
ย ย ย ย while(!ops[0].isDone)
ย ย ย ย {
ย ย ย ย ย ย Debug.Log(ops[0].progress);
ย ย ย ย ย ย if (ops[0].progress >= 0.9f)
ย ย ย ย ย ย ย ย break;
ย ย ย ย ย ย yield return null;
ย ย ย ย }
ย ์ด ๋ถ๋ถ์ progress๊ฐ ๊ณ์ 0์ผ๋ก ๋ธ ์ฌ์ ๋๊ฐ ๋ถ๋ฌ์ง๊ณ ์๋๊ฑฐ๋ ํ์ธ
ย ย ย ย while(!ops[1].isDone)
ย ย ย ย {
ย ย ย ย ย ย Debug.Log(ops[1].progress);
ย ย ย ย ย ย yield return null;
ย ย ย ย }
ย ย ย ย yield return null;
ย ย ย ย foreach (var op in ops)
ย ย ย ย {
ย ย ย ย ย ย op.allowSceneActivation = true;
ย ย ย ย }
ย ย }
https://forum.unity.com/threads/scenemanager-loadsceneasync-progress-stuck-at-0-while-loading-multiple-scenes-in-using-additive.520903/
๋น์ทํ
์ค๋ฅ์ธ ๊ฒ ๊ฐ์๋ฐ, ํ ๋ฒ ํ์ธํด๋ณด์ธ์.
๋ง์ง๋ง์ foreach ๋๋ ธ์ผ๋ 2๊ฐ ๋จ๋๊ฑฐ ์๋๊ฐ์?
๋ง์ง๋ง foreach๋ ๊ทธ ์์ additive์ฌ์ด ๋ถ๋ฌ์์ง์ง ์์์ ์คํ์ด ์๋ฉ๋๋ค. ๊ทธ๊ฒ ํ์ฌ ๋ฌธ์ ์ ๋๋ค.