๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด ์บ๋ฒ์ค ์์ UI ์์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์บ๋ฒ์ค๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๊ฑด ๋ง์ง๋ง,
'๋ค์ ๊ทธ๋ ค์ค์ผ ํ๊ธฐ ๋๋ฌธ'์ ์๋๋ค.
๋ด๊ฐ ์ด๊ฑธ ์ฐพ์๋ณด๊ฒ ๋ ๊ณ๊ธฐ๊ฐย ๋ค์ '๊ทธ๋ฆฐ๋ค'๋ ๋ง์ด ์กด๋ ์ด์ํด์์
๋ญ ๋์ UI๋ฅผ ๊ฐ๊ธ์ ์ฌ์ฉํ๋ฉด ์๋๋ค๋ ๊ฑด ์๊ณ ์์์ง๋ง, '์๋ก ๊ทธ๋ ค์ผ ํ๊ธฐ ๋๋ฌธ'์ด๋ผ๋ ๋ง์ด ๊ต์ฅํ ์ด์ํ๊ฒ ๋๊ปด์ก์.
๊ฐ๋งํ ์๊ฐํด๋ณด๋ฉด UI๊ฐ ๊ฐ๋งํ ์๋ ์ง๋ ๋ฐ๊ด์ ํ๋ ย ํ๋ฉด์ ๋ ๋๋ง ํ๋ ๊ฒ ์์ฒด๊ฐ ํ๋ ์ ๋จ์๋ก ๊ณ์ ์ผ์ด๋๋ ์ผ์.
๊ทธ๋์ ๋์ฒด ์ด ์ง์์ ์ถ์ฒ๊ฐ ์ด๋์ธ๊ฐ ํด์ ์ข ์ฐพ์๋ดค์.
๊ตญ๋ด ์๋ฃ๋ค์ ๋ญ ๋ค ๋น์ทํ๊ฒ ์ค๋ช ํ๊ณ ์๊ณ
์ด ์ง์๋ค์ ์๋ณธ์ผ๋ก ์ถ์ธก๋๋ ๊ธ์ด ๊ณต์ ํ์ ์ฌ๋ผ์ ์์.ย
Optimize your console and PC game performance๋ผ๋ ์ฑ ์ ๋ด์ฉ์ ์ผ๋ถ ์ ๋ฆฌํ ๊ธ์ธ๋ฐ ์๋ย ๋งํฌ๊ฐ ํด๋น ๊ธ์.
https://unity.com/kr/how-to/unity-ui-optimization-tips
๊ด๋ จ ๋ด์ฉ์ด ๊ฐ์ฅ ์ฒซ ๋ฌธ๋จ์ ๋ฐ๋ก ๋์จ๋ค.
Problem: When a single element changes on the UI Canvas, it dirties the whole canvas.
์บ๋ฒ์ค ์์ UI element๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์บ๋ฒ์ค ์ ์ฒด๋ฅผ ๋๋ฝํ๋ค.
๋๋ฝํ๋ค๋ ๋ง์ dirty flag๊ฐ ์ธ์์ง๋ค๋ ๋ง์.
dirty๋ ์ ๋ํฐ ๊ณณ๊ณณ์์ ์ข ์ข ์ฌ์ฉ๋๋ ๋จ์ด์ธ๋ฐ, ๊ฐ์ฅ ์ฝ๊ฒ ์ ํ ์ ์๋ ๊ฒ ํ๋ฆฌํน, ์ฌ์ ํธ์งํ์ ๋์.
ํ๋ฆฌํน์ด๋ ์ฌ์ ํธ์งํ๋ฉด ์ด๋ฆ์ด bold์ฒด๋ก ๋ํ๋๋๋ฐ ์ด ์ํ๊ฐ dirty flag๊ฐ ์ธ์์ง ๊ฑฐ๊ณ ์ ๋ํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ด flag๊ฐ ์ธ์์ง ๋๋ค๋ง ๊ฐฑ์ ํ๋ค.
์๋ํฐ์์ ์คํฌ๋ฆฝํธ๋ก ๋ฌด์์ ํ๋ฆฌํน ์ปดํฌ๋ํธ์ ์ ๊ทผํด์ ๊ฐ์ ๋ฐ๊ฟ๋ณธ ๋๋ค์ ์ ๋๋ก ์ ์ฅ์ดย ์๋๋ ๊ฑธ ๊ฒฝํํ ์ ์์์ ๊ฒ์.
dirty flag๊ฐ ์ธ์์ง์ง ์์์ ๊ทธ๋ ๋ค ใ ใ .
์ด์จ๋ canvas๊ฐ ๋๋ฝํ์ก๋ค๋ ๋ง์ canvas์์ ํ ui๊ฐ ๋ณ๊ฒฝ๋๋ฉด์ ์บ๋ฒ์ค ์ ์ฒด๊ฐ ๊ฐฑ์ ์ ๋์์ด ๋์๋ค๋ ๋ง์.
๋ณธ๋ฌธ์ ์ข ๋ ์ดํด๋ณด๋ฉดย ์บ๋ฒ์ค๋ UI elements์ ๋ํ ๋ฉ์๋ฅผ ์์ฑํ๊ณ ์ด ๋ฉ์์ ๋ํ ๋๋ก์ฐ ์ฝ์ GPU์ ๋ณด๋ด์ ์ค์ง์ ์ผ๋ก ํ๋ฉด์ ๋ฟ๋ ค์ค๋ค๊ณ ๋์ด์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฉ์๋ฅผ ์์ฑํ๋ ๋น์ฉ์ด ํฌ๋ค๊ณ ๋งํ๋ค.
๋ฉ์๋ฅผ ์์ฑํ๋ ๋น์ฉ์ด ํฐ ์ด์ ๊ฐย batch ์์ฑย ๋๋ฌธ์ธ๋ฐ,ย
์ต์ํ์ ๋๋ก์ฐ ์ฝ๋ก ๊ทธ๋ฆด ์ ์๋๋กย batch๋ฅผ ์์ฑํ๊ธฐ ์ํด์ย canvas ์ ์ฒด๋ฅผย ๋ถ์ํ๋ ๊ณผ์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์ ํ์์
์ฆ, UI๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ต์ ์ batch ์์ฑ์ ์ํด ์บ๋ฒ์ค๋ฅผ ๋ค์ ๋ถ์ํด์ ๋ฉ์๋ฅผ ์ฌ์์ฑํ๋ ๊ณผ์ ์ด ํ์ํ๋ฐ
์ด ๋น์ฉ์ดย ๋น์ธ๊ธฐ ๋๋ฌธ์ ๊ฐ๊ธ์ ์บ๋ฒ์ค ์์ ๋์ UI๋ฅผ ์ฌ์ฉํ์ง ๋ง๊ณ ํ์ํ๋ค๋ฉด ์บ๋ฒ์ค๋ฅผ ๋ถ๋ฆฌํ๋ผ๋ ๊ฒ์.
์ด๊ฑธ ๊ตญ๋ฌธ์ผ๋ก ๋ฒ์ญ ๋๋ ๋ณธ์ธ ๋๋ฆ๋๋ก ์ ๋ฆฌํ๋ฉด์
'์บ๋ฒ์ค ์์ UI ์์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋๋จธ์ง UI๋ ๋ค ๊ฐ์ดย ์๋ก ๊ทธ๋ ค์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์๋ค.'๋ ๋ง์ด ๋ ๊ฒ์ผ๋ก ๋ณด์.
'์๋ก ๊ทธ๋ ค์ค์ผ ํ๋ค'์ย '๋ฉ์๋ฅผ ์ฌ์์ฑํ๋ ๊ณผ์ ์์ ์ต์ ์ batch ์์ฑ์ ์ํด canvas ์ ์ฒด๋ฅผ ์๋ก ๋ถ์ํ๋ ๊ณผ์ ์ด ํ์ํ๋ค'๋ ์์ ํ ๋ค๋ฅธ ์๊ธฐ์.
๋ฉ์๋ฅผ ์์ฑํ๋ค๋ ๋ง์ ์ต์ง๋ก ๋ผ์ ๋ง์ถ๋ฉด ๋ ์๋ก ๊ทธ๋ฆฐ๋ค๊ณ ๋ณผ ์๋ ์๊ฒ ์ง๋ง, ์ ์ด๋ ๋ด๊ฐ ๋๋ผ๊ธฐ์ ๊ต์ฅํ ์ด์ํจ.
์์ฃผ ํ๋ฆฐ ๋ง์ ์๋๋๋ผ๋ ์ข ์ฐ์ฐํ์ง ใ ใ .
๊ฒฐ๋ก ์ ์บ๋ฒ์ค ์์ UI ์์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์บ๋ฒ์ค๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๊ฑด ๋ง์ง๋ง,ย '๋ค์ ๊ทธ๋ ค์ค์ผ ํ๊ธฐ ๋๋ฌธ'์ ์๋๋ค.
์ต์ ํ์ ๋ํ ํ์ด๋ ๋ฐฉ๋ฒ์ด ๋ฐ๋๋ ๊ฑด ์์ผ๋ ๊ทธ๋ฅ ํ๋๋๋ก ํ๋ฉด ๋์ง๋ง, ์ ๋๋ก ์๊ณ ๊ฐ ํ์๋ ์๋ค.
์ ๋ํฐ ๊ณต์์์ ์ ๊ณตํ๊ณ ์๋ ์๋ฃ๊ณ ย 2021 7์์ ์์ฑ๋ ๊ธ์ด๋ ์ง๊ธ LTS ๋ฒ์ ๊น์ง ํตํ๋ ์๊ธฐ๊ฒ ์ง.
๋ค๋ฅธ UI ์ต์ ํ ํ๋ค๋ ์์ผ๋ ํ ๋ฒ์ฉ ๋ณด๋ฉด ์ข์ ๋ฏ
์๊ณ ์ถ๋ ์ ๋ณด์๋๋ฐ ํํ๋ผ์ ์์ฐพ์๋ดค๋ค๊ฐ ๋ฐฐ์ฐ๊ณ ๊ฐ - dc App
์ผ๋ง์ ์๋๋ด๊ฐ๋๊ธ๋ฌ์์์ง ์๋ชป๋์ ๋ณด๊ฐ ์ ํฝํ๊ณ ์ด์ํ๊ฒํผ์ง๋ค๊ณ
๊ทธ๊ฑฐ ๋ณด๊ณ ์ฐพ์๋ดค๋ค
๋ด๋น๋ผ์ ์ข ์๋ฆฌ์กํ๋ฐ ์๋ฐํ๊ฒ ์๋ฏธ๊ฐ ํ๋ฆฐ๊ฑฐ๊ณ ๋์ถฉ ์ ์ฐจ๋ ๋น์ทํ ๊ฑฐ ์๋?
๋๋ ์ด๋๊น์ง '์๋ก ๊ทธ๋ฆฐ๋ค'๋ ๋ง๋ง ๋ค์ด์ ๋จ์ํ ํ์ฌ ๊ทธ๋ ค์ ธ์๋๊ฑธ ๋ค ์ง์ฐ๊ณ ์๋ก ๋ ๋ํ๋ ๊ณผ์ ์ธ์ค๋ง ์์๋๋ฐ
'์บ๋ฒ์ค๋ฅผ ๋ค์ ๋ถ์ํด์ ๋ฉ์๋ฅผ ์ฌ์์ฑํ๋ ๊ฒ' ์ดํ์๋ ๊ฒฐ๊ตญ ๊ทธ ๋ฉ์๋ฅผ ๋ฐํ์ผ๋ก ์๋ก ๊ทธ๋ฆด๊ฑฐ์๋?
๋ ๋๋ง ์์ฒด๋ ์๋ ๊ณ์ ์ผ์ด๋๋๊ฑฐ๊ณ , ์บ๋ฒ์ค๋ ๋ ๋๋ง์ ํ์ํ ๋ฉ์๋ฅผ ์์ฑํ๋๋ฐ ์บ๋ฒ์ค ์์ UI element๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ฉ์๋ฅผ ์ฌ์์ฑ ํด์ผํ๊ณ ์ด ๊ณผ์ ์์ ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์๋ค๋ ๊ฒ์. ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉด ์ ์ด์ ๋ฉ์๋ฅผ ์ฌ์์ฑํ์ง ์์ผ๋ ์ฑ๋ฅ ์ ํ๊ฐ ์๋๊ฑฐ๊ณ . ๋ฉ์๋ฅผ ๋ค์ ์์ฑํด์ผ ํด์ ๊ทธ๋ฐ ๊ฑฐ์ง '๊ทธ๋ฆฌ๋' ํ์๊ฐ ๋ ํ์ํ๊ฒ ๋ผ์ ์ฑ๋ฅ ์ ํ๊ฐ ์ผ์ด๋๋ ๊ฒ ์๋๋ผ๋ ๋ง์.
๊ทธ๋ฆฌ๋ ํ์ = ๋ ๋๋ง => ์บ๋ฒ์ค๊ฐ ๋ฐ๋๋ ๋ง๋ ์ด์งํผ ์ผ์ด๋๋ ๊ฒ
๊ทธ ๋ง์ ์บ๋ฒ์ค์ ๋ณํ๊ฐ ์์ ๋๋ ํ๋ฒ ๊ทธ๋ ค๋์๊ฑธ ๊ณ์ ์ฐ๋๊ฒ ์๋๋ผ ๋งค ํ๋ ์๋ง๋ค ๊ณ์ ์๋ก ์ง์ฐ๊ณ ๊ทธ๋ฆฌ๊ณ ์๋ค๋ ๋ง์?
ใ ใ . ์ฌ์ฌ์ฉํ๋ ๊ฑด ๋ฉ์๊ณ , ํ๋ฉด์ ๋์ ๋์ ๊ฑธ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ์๋.
์์ธํ ๋ด์ฉ์ ์๊ณ ์ถ์ผ๋ฉด ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ๊ณต๋ถํด๋ณด๊ธธ ๋ฐ๋
NGUI๋ง๋ ๋์ด ์ ์ฌํด์ UGUI๋ง๋ ๊ฑฐ๋ผ ๊ธฐ๋ณธ ์๋ฆฌ๋ NGUI๋๋ ๋๊ฐ๋ค. Canvas์๋์ ์๋ UI๋ค์ ํ๋ฒDrawCall๋ก ๋ ๋๋งํ๊ธฐ์ํด์ ๋ฉ์ฌ ์ง์ง๊ธฐ๋ฅผ ํจ. ์์ NGUI๋ ๊ทธ๋ฌ์.