๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์บ”๋ฒ„์Šค ์œ„์˜ 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 ์ตœ์ ํ™” ํŒ๋“ค๋„ ์žˆ์œผ๋‹ˆ ํ•œ ๋ฒˆ์”ฉ ๋ณด๋ฉด ์ข‹์„ ๋“ฏ