Version: Unity 6.0 (6000.0)
์–ธ์–ด : ํ•œ๊ตญ์–ด
Set up the Android SDK Target API
Android ํ‚ค์Šคํ† ์–ด

Android ํ”Œ๋ ˆ์ด์–ด ์„ค์ •

์ด ํŽ˜์ด์ง€์—์„œ๋Š” Android ํ”Œ๋žซํผ์šฉ ํ”Œ๋ ˆ์ด์–ด ์„ค์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํ”Œ๋ ˆ์ด์–ด ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”Œ๋ ˆ์ด์–ด ์„ค์ •์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Android์šฉ ํ”Œ๋ ˆ์ด์–ด ์„ค์ •
Android์šฉ ํ”Œ๋ ˆ์ด์–ด ์„ค์ •

ํ”„๋กœํผํ‹ฐ ๋ฌธ์„œ๋Š” ํ”Œ๋ ˆ์ด์–ด__ UI__(์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋„๋ก ํ•ด ์ค๋‹ˆ๋‹ค. Unity๋Š” ํ˜„์žฌ 3๊ฐœ์˜ UI ์‹œ์Šคํ…œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด
See in Glossary
์„น์…˜์— ๋‚˜์—ด๋œ ์ˆœ์„œ๋Œ€๋กœ ๊ทธ๋ฃนํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์ด์ฝ˜

Icon ์„น์…˜์„ ํ†ตํ•ด ๊ธฐ๊ธฐ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ์•„์ด์ฝ˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

Android์šฉ ์•„์ด์ฝ˜ ์„ค์ •
Android์šฉ ์•„์ด์ฝ˜ ์„ค์ •
์„ค์ • ์„ค๋ช…
Adaptive Android 8.0(API ๋ ˆ๋ฒจ 26) ์ด์ƒ ๋ฒ„์ „์ด ํƒ‘์žฌ๋œ ๊ธฐ๊ธฐ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ํ…์Šค์ฒ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Round Android 7.1(API ๋ ˆ๋ฒจ 25) ์ด์ƒ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๊ธฐ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ํ…์Šค์ฒ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Legacy Android 7.1(API ๋ ˆ๋ฒจ 25) ์ด์ „ ๋ฒ„์ „์ด ํƒ‘์žฌ๋œ ๊ธฐ๊ธฐ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ํ…์Šค์ฒ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด์ƒ๋„ ๋ฐ ํ”„๋ ˆ์  ํ…Œ์ด์…˜

Resolution and Presentation ์„น์…˜์˜ ๋‹ค์Œ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™”๋ฉด์ด ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Resolution

Resolution ์„น์…˜์—์„œ๋Š” ์Šคํฌ๋ฆฐ ๋ชจ๋“œ์™€ ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ์„ค๋ช…
Run Without Focus ์ด ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ถ„ํ•  ํ™”๋ฉด ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ธฐ๊ธฐ์ฒ˜๋Ÿผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํฌ์ปค์Šค๊ฐ€ ์žˆ์ง€ ์•Š์ง€๋งŒ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ผ์‹œ ์ค‘์ง€๋˜์ง€๋งŒ ๊ณ„์† ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Fullscreen Mode ๊ธฐ๊ธฐ์— ์ฐฝ์ด ํ‘œ์‹œ๋˜๋Š” ๋ฐฉ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ์‹œ ๊ธฐ๋ณธ ์ฐฝ ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
Fullscreen Window ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์ด ๊ธฐ๊ธฐ์˜ ์ „์ฒด ํ™”๋ฉด ๊ธฐ๋ณธ ํ•ด์ƒ๋„๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์ „์ฒด ํ™”๋ฉด ์ฐฝ์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด Unity๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ˜ํ…์ธ ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค. Resolution Scaling Mode๋Š” Unity๊ฐ€ ์ฝ˜ํ…์ธ ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ์‹์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ์—์„œ๋Š” ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”๊ฐ€ ํ•ญ์ƒ ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
Windowed ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ „์ฒด ํ™”๋ฉด์ด ์•„๋‹Œ ์ด๋™ ๊ฐ€๋Šฅํ•œ ํ‘œ์ค€ ์ฐฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฐฝ์˜ ํฌ๊ธฐ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ด์ƒ๋„์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌ๊ธฐ ์กฐ์ ˆ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด Resizeable Activity๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Resizeable Activity ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ด ์„ค์ •์€ Android ์Šค๋งˆํŠธํฐ ๋ฐ ํƒœ๋ธ”๋ฆฟ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์ค‘ ์ฐฝ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Default Window Width ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ๊ธฐ๋ณธ ๋„ˆ๋น„(ํ”ฝ์…€ ๋‹จ์œ„)์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ Fullscreen Mode๊ฐ€ Windowed๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Default Window Height ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ๊ธฐ๋ณธ ๋†’์ด(ํ”ฝ์…€ ๋‹จ์œ„)์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ Fullscreen Mode๊ฐ€ Windowed๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Minimum Window Width ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ์ตœ์†Œ ๋„ˆ๋น„(ํ”ฝ์…€ ๋‹จ์œ„)์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ Fullscreen Mode๊ฐ€ Windowed๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Minimum Window Height ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ์ตœ์†Œ ๋†’์ด(ํ”ฝ์…€ ๋‹จ์œ„)์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ Fullscreen Mode๊ฐ€ Windowed๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Hide Navigation Bar ์ฐฝ ์ƒ๋‹จ์— ํ‘œ์‹œ๋˜๋Š” ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”๋ฅผ ์ˆจ๊ธธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Render outside safe area ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ปท์•„์›ƒ๋œ(๋…ธ์น˜๋œ) ๋””์Šคํ”Œ๋ ˆ์ด ์˜์—ญ์„ ํฌํ•จํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์Šคํฌ๋ฆฐ ๊ณต๊ฐ„์„ ๋ Œ๋”๋ง์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Android์˜ ๋””์Šคํ”Œ๋ ˆ์ด ์ปท์•„์›ƒ ์ง€์› ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์ด ์ด ์„ค์ •์˜ ๋™์ž‘์€ Android ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
Android 15 and newer ์ด ์„ค์ •์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์ฒด ์Šคํฌ๋ฆฐ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Android ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Android 11 to 14 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ „์ฒด ์Šคํฌ๋ฆฐ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ปท์•„์›ƒ ์ฃผ๋ณ€ ๊ณต๊ฐ„์„ ์‹œ์Šคํ…œ ๋ฐ”(๊ธฐ๊ธฐ์˜ ์ƒ๋‹จ ๋˜๋Š” ํ•˜๋‹จ) ๋‚ด์— ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปท์•„์›ƒ ์˜์—ญ ์œ„์— ๊ฒ€์€์ƒ‰ ๋ฐ”๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปท์•„์›ƒ ์ฃผ๋ณ€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Android ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Android 10 and older ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ธฐ๊ธฐ์˜ ์งง์€ ๊ฐ€์žฅ์ž๋ฆฌ(์œ„ ๋˜๋Š” ํ•˜๋‹จ ๋“ฑ)์— ์žˆ๋Š” ์ปท์•„์›ƒ ์ฃผ๋ณ€์˜ ์Šคํฌ๋ฆฐ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ธฐ๊ธฐ์˜ ๊ธด ๊ฐ€์žฅ์ž๋ฆฌ(์ธก๋ฉด ๋“ฑ)์— ์žˆ๋Š” ์ปท์•„์›ƒ์„ ๊ฒ€์€์ƒ‰ ๋ฐ”๋กœ ๊ฐ€๋ฆฝ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์งง์€ ๊ฐ€์žฅ์ž๋ฆฌ์˜ ์ปท์•„์›ƒ ์ฃผ๋ณ€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Android ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ปท์•„์›ƒ ์ฃผ๋ณ€ ๊ณต๊ฐ„์„ ์‹œ์Šคํ…œ ๋ฐ” ๋‚ด์— ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปท์•„์›ƒ ์˜์—ญ ์œ„์— ๊ฒ€์€์ƒ‰ ๋ง‰๋Œ€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปท์•„์›ƒ ์ฃผ๋ณ€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Android ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Optimized Frame Pacing ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด Unity๊ฐ€ ํ”„๋ ˆ์ž„ ์†๋„์˜ ํŽธ์ฐจ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ”„๋ ˆ์ž„์„ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•˜๋„๋ก ํ•˜์—ฌ ๋” ์›ํ™œํ•œ ๊ฒฝํ—˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Resolution Scaling

ํ™”๋ฉด ํ•ด์ƒ๋„ ์Šค์ผ€์ผ๋ง๊ณผ ๊ด€๋ จ๋œ ์„ค์ •์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•˜๋ ค๋ฉด Resolution Scaling ์„น์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ์˜ ๊ธฐ๋ณธ ํ•ด์ƒ๋„๋ณด๋‹ค ๋‚ฎ์€ ํ•ด์ƒ๋„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ๊ณผ ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜๋ช…์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ์„ค๋ช…
Resolution Scaling Mode ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•ด์ƒ๋„๋ฅผ ์Šค์ผ€์ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€์™€ ๋ฐฉ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ™”๋ฉด ํ•ด์ƒ๋„ ์ดํ•˜๊ฐ€ ๋˜๋„๋ก ์Šค์ผ€์ผ๋ง์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ฎ์€ ํ•ด์ƒ๋„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ๊ณผ ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜๋ช…์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Disabled ํ•ด์ƒ๋„ ์Šค์ผ€์ผ๋ง์„ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๊ธฐ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ํ™”๋ฉด ํ•ด์ƒ๋„๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.
FixedDPI ํƒ€๊ฒŸ DPI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด์ƒ๋„ ์Šค์ผ€์ผ๋ง์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ๊ณผ ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜๋ช…์„ ์ตœ์ ํ™”ํ•˜๊ฑฐ๋‚˜ ํŠน์ • DPI ์„ค์ •์„ ํƒ€๊ฒŒํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Letterboxed ์ฝ˜ํ…์ธ ๊ฐ€ ๋Š˜์–ด๋‚˜์ง€ ์•Š๋„๋ก ๋ Œ๋”๋ง๋œ ์ถœ๋ ฅ์— ๊ฒ€์€์ƒ‰ ๋ฐ”๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ ˆํ„ฐ๋ฐ•์‹ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
Target DPI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ด์ƒ๋„์ž…๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ์˜ ๊ธฐ๋ณธ ํ™”๋ฉด DPI๊ฐ€ ์ด ๊ฐ’๋ณด๋‹ค ๋†’์œผ๋ฉด Unity๋Š” ์ด ์„ค์ •๊ณผ ์ผ์น˜ํ•˜๋„๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ด์ƒ๋„๋ฅผ ๋‹ค์šด์Šค์ผ€์ผํ•ฉ๋‹ˆ๋‹ค. Unity๋Š” min(Target DPI * Factor / Screen DPI, 1)์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค์ผ€์ผ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Factor๋Š” ํ’ˆ์งˆ ์„ค์ •์˜ Resolution Scaling Fixed DPI Factor์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ์˜ต์…˜์€ Resolution Scaling Mode๊ฐ€ Fixed DPI๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Reset resolution on window resize ๊ธฐ๋ณธ ์ฐฝ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ํ™”๋ฉด ํ•ด์ƒ๋„๋ฅผ ์ƒˆ๋กœ์šด ๊ธฐ๋ณธ ์ฐฝ ํฌ๊ธฐ๋กœ ์„ค์ •ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Resolution Scaling Mode๋ฅผ Fixed DPI๋กœ ์„ค์ •ํ•˜๋ฉด Unity๋Š” Fixed DPI ํ”„๋กœํผํ‹ฐ์— ๋”ฐ๋ผ ํ•ด์ƒ๋„๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
Blit Type blit์„ ์‚ฌ์šฉํ•ด ์ตœ์ข… ์ด๋ฏธ์ง€๋ฅผ ํ™”๋ฉด์— ๋ Œ๋”๋งํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. blit์„ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๊ธฐ์™€ ํ˜ธํ™˜๋˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ blit์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋ณด๋‹ค ๋А๋ฆฝ๋‹ˆ๋‹ค.
Always Unity๋Š” ์˜คํ”„์Šคํฌ๋ฆฐ ๋ฒ„ํผ๋กœ ๋ Œ๋”๋งํ•œ ํ›„ blit์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํผ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ธฐ๊ธฐ์˜ ํ”„๋ ˆ์ž„๋ฒ„ํผ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๊ธฐ์™€ ํ˜ธํ™˜๋˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ blit์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋ณด๋‹ค ๋А๋ฆฝ๋‹ˆ๋‹ค.
Never Unity๊ฐ€ ๊ธฐ๊ธฐ์˜ ์šด์˜ ์ฒด์ œ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„๋ฒ„ํผ๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์ด ์‹คํŒจํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๊ธฐ ๋กœ๊ทธ์— ์ผํšŒ์„ฑ ๊ฒฝ๊ณ ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ blit์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ, ์ผ๋ถ€ ๊ธฐ๊ธฐ์—์„œ๋Š” ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Auto ๊ฐ€๋Šฅํ•˜๋ฉด Unity๊ฐ€ ๊ธฐ๊ธฐ์˜ ์šด์˜ ์ฒด์ œ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„๋ฒ„ํผ๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์ด ์‹คํŒจํ•˜๋ฉด Unity๋Š” ๊ธฐ๊ธฐ ์ฝ˜์†”์— ๊ฒฝ๊ณ ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  blit์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ข… ์ด๋ฏธ์ง€๋ฅผ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.

Supported Aspect Ratio

Supported Aspect Ratio ์„น์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์›ํ•  ๊ธฐ๊ธฐ์˜ ์ข…ํšก๋น„์™€ ๊ด€๋ จ๋œ ์„ค์ •์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ์„ค๋ช…
Aspect Ratio Mode ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ง€์›ํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ข…ํšก๋น„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ์˜ ์ข…ํšก๋น„๊ฐ€ ์ด ์ข…ํšก๋น„๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ Unity๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ด ์ข…ํšก๋น„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋Š˜์–ด๋‚˜์ง€ ์•Š๋„๋ก ๊ฒ€์€์ƒ‰ ๋ฐ”๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Legacy Wide Screen (1.86) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Android์˜ ๋ ˆ๊ฑฐ์‹œ ์™€์ด๋“œ ์Šคํฌ๋ฆฐ ์ข…ํšก๋น„๊นŒ์ง€ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
Native Aspect Ratio ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Android์˜ ๋„ค์ดํ‹ฐ๋ธŒ ์ข…ํšก๋น„๊นŒ์ง€ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
Custom ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Maximum์— ์„ค์ •ํ•œ ์ข…ํšก๋น„๊นŒ์ง€ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
Minimum ์ปค์Šคํ…€ ์ตœ์†Œ ์ข…ํšก๋น„์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ Maximum๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : Aspect Ratio Mode๋ฅผ Custom์œผ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Maximum ์ปค์Šคํ…€ ์ตœ๋Œ€ ์ข…ํšก๋น„์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ Minimum๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : Aspect Ratio Mode๋ฅผ Custom์œผ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Miscellaneous

์„ค์ • ์„ค๋ช…
Show Loading Indicator ๋กœ๋”ฉ ํ‘œ์‹œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š”์ง€ ์—ฌ๋ถ€์™€ ํ‘œ์‹œ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Donโ€™t Show ๋กœ๋”ฉ ํ‘œ์‹œ๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Large ๋กœ๋”ฉ ํ‘œ์‹œ๋ฅผ ํฌ๊ฒŒ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Inversed Large ๋กœ๋”ฉ ํ‘œ์‹œ์˜ ์ƒ‰์„ ๋ฐ˜์ „์‹œํ‚ค๊ณ  ํฌ๊ฒŒ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Small ๋กœ๋”ฉ ํ‘œ์‹œ๋ฅผ ์ž‘๊ฒŒ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Inversed Small ๋กœ๋”ฉ ํ‘œ์‹œ์˜ ์ƒ‰์„ ๋ฐ˜์ „์‹œํ‚ค๊ณ  ์ž‘๊ฒŒ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Orientation

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Default Orientation ๊ธฐ๊ธฐ ํ™”๋ฉด ๋‚ด์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ๋ฐฉํ–ฅ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : Unity์—์„œ ์ง€์ •ํ•œ ์ด ์„ค์ •์˜ ๊ฐ’์€ Android, iOS, UWP ๋ชจ๋‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
Portrait ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•˜๋‹จ์ด ํ™”๋ฉด ํ•˜๋‹จ์— ๋งž์ถฐ์ง€๋Š” ์„ธ๋กœ ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.
Portrait Upside Down ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•˜๋‹จ์ด ํ™”๋ฉด ์ƒ๋‹จ์— ๋งž์ถฐ์ง€๋Š” ์„ธ๋กœ ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.
Landscape Right ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ค๋ฅธ์ชฝ์ด ํ™”๋ฉด ์ƒ๋‹จ์— ๋งž์ถฐ์ง€๋Š” ๊ฐ€๋กœ ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.
Landscape Left ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์™ผ์ชฝ์ด ํ™”๋ฉด ์ƒ๋‹จ์— ๋งž์ถฐ์ง€๋Š” ๊ฐ€๋กœ ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.
Auto Rotation Allowed Orientations for Auto Rotation ์„น์…˜์—์„œ ์ง€์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ํ™”๋ฉด์„ ํšŒ์ „ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Auto Rotation Behavior Default Orientation์ด Auto Rotation์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ๊ธฐ๊ธฐ์˜ ํšŒ์ „ ์„ผ์„œ ๋ฐ ๋ฐฉํ–ฅ ์„ค์ •์— ๋”ฐ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ๋ฐฉํ–ฅ์„ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : Default Orientation์„ Auto Rotation์œผ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ด ํ”„๋กœํผํ‹ฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ํ”„๋กœํผํ‹ฐ๋Š” User๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
User ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ๋ฐฉํ–ฅ์ด ๊ธฐ๊ธฐ์˜ ๋ฐฉํ–ฅ ์„ค์ •์— ๋”ฐ๋ผ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ธฐ์˜ ์ž๋™ ํšŒ์ „ ๋ฐฉํ–ฅ ์„ค์ •์„ ์ž ๊ทธ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์ด Allowed Orientations for Auto Rotation ์„น์…˜์— ์„ค์ •ํ•œ ํ™˜๊ฒฝ ์„ค์ •์„ ๋”ฐ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ธฐ์˜ ์ž๋™ ํšŒ์ „ ๋ฐฉํ–ฅ ์„ค์ •์„ ๋„๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์ด ์„ค์ •๋œ ํ™˜๊ฒฝ ์„ค์ •์— ๋”ฐ๋ผ์„œ๋งŒ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.
Sensor ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์˜ ๋ฐฉํ–ฅ์ด ๊ธฐ๊ธฐ์˜ ๋ฐฉํ–ฅ ์„ค์ •๊ณผ ๊ด€๊ณ„์—†์ด ๊ธฐ๊ธฐ์˜ ํšŒ์ „ ์„ผ์„œ์— ๋”ฐ๋ผ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์€ Allowed Orientations for Auto Rotation ์„น์…˜์—์„œ ์„ค์ •ํ•œ ํ™˜๊ฒฝ ์„ค์ •์— ๋”ฐ๋ผ์„œ๋งŒ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.

Allowed Orientations for Auto Rotation

Default Orientation์„ Auto Rotation์œผ๋กœ ์„ค์ •ํ•  ๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ง€์›ํ•˜๋Š” ๋ฐฉํ–ฅ์„ ์ง€์ •ํ•˜๋ ค๋ฉด Allowed Orientations for Auto Rotation ์„น์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ๊ณ ์ •ํ•˜๋˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€๋กœ ์™ผ์ชฝ๊ณผ ๊ฐ€๋กœ ์˜ค๋ฅธ์ชฝ ๊ฐ„์— ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ์„น์…˜์€ Orientation ์„น์…˜์˜ Default Orientation์„ Auto Rotation์œผ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Portrait ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•˜๋‹จ์ด ํ™”๋ฉด ํ•˜๋‹จ์— ๋งž์ถฐ์ง€๋Š” ํ˜•ํƒœ์˜ ์„ธ๋กœ ๋ฐฉํ–ฅ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Portrait Upside Down ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•˜๋‹จ์ด ํ™”๋ฉด ์ƒ๋‹จ์— ๋งž์ถฐ์ง€๋Š” ํ˜•ํƒœ์˜ ์„ธ๋กœ ๋ฐฉํ–ฅ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Landscape Right ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์šฐ์ธก์ด ํ™”๋ฉด ์ƒ๋‹จ์— ๋งž์ถฐ์ง€๋Š” ํ˜•ํƒœ์˜ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Landscape Left ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ขŒ์ธก์ด ํ™”๋ฉด ์ƒ๋‹จ์— ๋งž์ถฐ์ง€๋Š” ํ˜•ํƒœ์˜ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ํ•ด์ƒ๋„ ๋ฐ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ์„ค์ •

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Use 32-bit Display Buffer ๋””์Šคํ”Œ๋ ˆ์ด ๋ฒ„ํผ๊ฐ€ 16๋น„ํŠธ ์ปฌ๋Ÿฌ ๊ฐ’์ด ์•„๋‹Œ 32๋น„ํŠธ ์ปฌ๋Ÿฌ ๊ฐ’์„ ํฌํ•จํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฐด๋”ฉ์ด ์žˆ๊ฑฐ๋‚˜ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ ํšจ๊ณผ์—์„œ ์•ŒํŒŒ ๊ฐ’์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ ํšจ๊ณผ๋Š” ๋””์Šคํ”Œ๋ ˆ์ด ๋ฒ„ํผ์™€ ๋™์ผํ•œ ํฌ๋งท์˜ ๋ Œ๋” ํ…์Šค์ฒ˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.
Disable Depth and Stencil ๋ށ์Šค ๋ฐ ์Šคํ…์‹ค ๋ฒ„ํผ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Render Over Native UI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋„ค์ดํ‹ฐ๋ธŒ UI ์œ„์— ๋ Œ๋”๋ง๋˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์ ์šฉํ•˜๋ ค๋ฉด ์นด๋ฉ”๋ผ์˜ Clear Flags๋ฅผ ์•ŒํŒŒ ๊ฐ’์ด 1๋ณด๋‹ค ์ž‘์€ ๋‹จ์ƒ‰์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

## ์Šคํ”Œ๋ž˜์‹œ ์ด๋ฏธ์ง€

๊ฐ€์ƒ ํ˜„์‹ค ๋””์Šคํ”Œ๋ ˆ์ด์— ํ‘œ์‹œ๋  ์ปค์Šคํ…€ ์Šคํ”Œ๋ž˜์‹œ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด Virtual Reality Splash Image ์„ค์ •์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ผ๋ฐ˜์ ์ธ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๊ฐ€์ƒ ํ˜„์‹ค์šฉ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์„ค์ •
๊ฐ€์ƒ ํ˜„์‹ค์šฉ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์„ค์ •

์ผ๋ฐ˜ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์„ค์ • ์•„๋ž˜์—์„œ Android ์ „์šฉ Static Splash Image ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Android์šฉ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์„ค์ •
Android์šฉ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์„ค์ •
์„ค์ • ์„ค๋ช…
Image ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Android ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์— ์‚ฌ์šฉํ•˜๋Š” ํ…์Šค์ฒ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์ด๋ฏธ์ง€์˜ ํ‘œ์ค€ ํฌ๊ธฐ๋Š” 320x480์ž…๋‹ˆ๋‹ค.
Scaling ๊ธฐ๊ธฐ ํ™”๋ฉด์— ๋งž๊ฒŒ ์Šคํ”Œ๋ž˜์‹œ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์Šค์ผ€์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Center (only scale down) ์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ํฌ์ง€ ์•Š๋‹ค๋ฉด ๋„ค์ดํ‹ฐ๋ธŒ ํฌ๊ธฐ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋“œ๋กœ์šฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Unity๋Š” ์ด๋ฏธ์ง€๋ฅผ ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ถ•์†Œํ•ฉ๋‹ˆ๋‹ค.
Scale to Fit (letter-boxed) ๋” ๊ธด ์ชฝ์ด ํ™”๋ฉด ํฌ๊ธฐ์— ์ •ํ™•ํžˆ ๋งž๋„๋ก ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. Unity๊ฐ€ ์งง์€ ์น˜์ˆ˜์˜ ์ธก๋ฉด ๋นˆ ๊ณต๊ฐ„์„ ๊ฒ€์ •์ƒ‰์œผ๋กœ ์ฑ„์›๋‹ˆ๋‹ค.
Scale to Fill (cropped) ๋” ์งง์€ ์ชฝ์ด ํ™”๋ฉด ํฌ๊ธฐ์— ์ •ํ™•ํžˆ ๋งž๋„๋ก ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. Unity๊ฐ€ ๊ธด ์น˜์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ž๋ฆ…๋‹ˆ๋‹ค.

##๊ธฐํƒ€ ์„ค์ •

์ด ์„น์…˜์—์„œ๋Š” ๋‹ค์Œ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฅ˜๋œ ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

###๋ Œ๋”๋ง

๋‹ค์Œ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ Unity๊ฐ€ Android ํ”Œ๋žซํผ์šฉ์œผ๋กœ ๊ฒŒ์ž„์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Color Space ๋ Œ๋”๋ง์— ์‚ฌ์šฉํ•  ์ƒ‰ ๊ณต๊ฐ„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆฌ๋‹ˆ์–ด ๋ Œ๋”๋ง ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Gamma ๊ฐ๋งˆ ์ƒ‰ ๊ณต๊ฐ„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋ ˆ์ž„๋ฒ„ํผ ํฌ๋งท์— ๋Œ€ํ•ด ์ฑ„๋„๋‹น 8๋น„ํŠธ๋กœ ์ œํ•œ๋œ ๊ตฌํ˜• ํ•˜๋“œ์›จ์–ด์—์„œ ์กฐ๋ช…์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ชจ๋‹ˆํ„ฐ๋Š” ๋””์ง€ํ„ธ์ด์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฐ๋งˆ๋กœ ์ธ์ฝ”๋”ฉ๋œ ์‹ ํ˜ธ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
Linear ๋ฆฌ๋‹ˆ์–ด ์ƒ‰ ๊ณต๊ฐ„ ๋ Œ๋”๋ง์€ ๋” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋‹ˆ์–ด ์ƒ‰ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ ํƒํ•˜๋ฉด ์—๋””ํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ sRGB ์ƒ˜ํ”Œ๋ง์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ…์Šค์ฒ˜๊ฐ€ ๋ฆฌ๋‹ˆ์–ด ์ƒ‰ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฆฌ๋‹ˆ์–ด ์ƒ‰ ๊ณต๊ฐ„์œผ๋กœ ์ž‘์—…ํ•˜๊ณ  ๊ฐ ํ…์Šค์ฒ˜์— ๋Œ€ํ•ด sRGB ์ƒ˜ํ”Œ๋ง์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Auto Graphics API ๊ทธ๋ž˜ํ”ฝ์Šค API๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ ํƒํ•˜๊ณ  ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์˜ต์…˜์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ, Unity๋Š” Vulkan์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ๊ฐ€ Vulkan์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด Unity๋Š” GLES3.2, GLES3.1, GLES3.0์œผ๋กœ ํด๋ฐฑํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”: Unity๋Š” Auto Graphics API๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ Graphics API์— OpenGLES3๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋งŒ Android ์•ฑ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— GLES3.1/GLES3.1+AEP/GLES3.2 ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Graphics APIs ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ง€์›ํ•˜๋Š” ๊ทธ๋ž˜ํ”ฝ์Šค API๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Unity๋Š” ๋ฆฌ์ŠคํŠธ ์ƒ๋‹จ์— ์žˆ๋Š” ๊ทธ๋ž˜ํ”ฝ์Šค API๋ฅผ ๋จผ์ € ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉฐ, ๊ธฐ๊ธฐ๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌ์ŠคํŠธ์˜ ๋‹ค์Œ ๊ทธ๋ž˜ํ”ฝ์Šค API๋กœ ๋‹ค์‹œ ํด๋ฐฑํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ํ”„๋กœํผํ‹ฐ๋Š” Auto Graphics API๊ฐ€ false๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Vulkan ํƒ€๊ฒŸ์— Vulkan์„ API๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
OpenGLES3 ํƒ€๊ฒŸ์— OpenGLES 3๋ฅผ API๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Require ES3.1 ์ตœ์†Œ OpenGL ES 3 ๋งˆ์ด๋„ˆ ๋ฒ„์ „์ด 3.1์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ด ํ”„๋กœํผํ‹ฐ๋Š” Auto Graphics API๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ Graphics APIs์— OpenGLES3๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Require ES3.1+AEP ์ตœ์†Œ OpenGL ES 3 ๋งˆ์ด๋„ˆ ๋ฒ„์ „์ด 3.1+AEP์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ด ํ”„๋กœํผํ‹ฐ๋Š” Auto Graphics API๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ Graphics APIs์— OpenGLES3๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Require ES3.2 ์ตœ์†Œ OpenGL ES 3 ๋งˆ์ด๋„ˆ ๋ฒ„์ „์ด 3.2์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ด ํ”„๋กœํผํ‹ฐ๋Š” Auto Graphics API๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ Graphics APIs์— OpenGLES3๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Color Gamut ๋ Œ๋”๋ง์— ์‚ฌ์šฉํ•  ์ƒ‰ ์˜์—ญ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ํ•˜๊ธฐ(+) ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒ‰ ์˜์—ญ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ƒ‰ ์˜์—ญ์€ ๊ฐ ๊ธฐ๊ธฐ(๋ชจ๋‹ˆํ„ฐ ๋˜๋Š” ์Šคํฌ๋ฆฐ ๋“ฑ)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปฌ๋Ÿฌ์˜ ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. sRGB ์˜์—ญ์€ ๊ธฐ๋ณธ ๋ฐ ํ•„์ˆ˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค.
Multithreaded Rendering ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๊ทธ๋ž˜ํ”ฝ์Šค API ํ˜ธ์ถœ์„ Unity์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ๋ณ„๋„์˜ ์›Œ์ปค ์Šค๋ ˆ๋“œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ CPU ์‚ฌ์šฉ์ด ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Static Batching ์ •์  ๋ฐฐ์นญ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋™์  ๋ฐฐ์นญ ๋นŒ๋“œ์— ๋™์  ๋ฐฐ์นญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ).

์ฐธ๊ณ : ์Šคํฌ๋ฆฝํ„ฐ๋ธ” ๋ Œ๋” ํŒŒ์ดํ”„๋ผ์ธ์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋™์  ๋ฐฐ์นญ์€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด ์„ค์ •์€ ์Šคํฌ๋ฆฝํ„ฐ๋ธ” ๋ Œ๋” ํŒŒ์ดํ”„๋ผ์ธ ์—์…‹ ๊ทธ๋ž˜ํ”ฝ์Šค ์„ค์ •์ด ๋น„์–ด ์žˆ์„ ๋•Œ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Sprite Batching Threshold ๋ฐฐ์นญ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์ตœ๋Œ€ ๋ฒ„ํ…์Šค ์ž„๊ณ„๊ฐ’์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
GPU Skinning ์…ฐ์ด๋”๋ฅผ ํ†ตํ•ด GPU์—์„œ ๋ฉ”์‹œ ์Šคํ‚ค๋‹๊ณผ ๋ธ”๋ Œ๋“œ ์…ฐ์ดํ”„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ CPU ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•๋ณดํ•˜๊ณ  ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
GPU GPU์—์„œ ๋ฉ”์‹œ ์Šคํ‚ค๋‹๊ณผ ๋ธ”๋ Œ๋“œ ์…ฐ์ดํ”„ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
CPU CPU์—์„œ ๋ฉ”์‹œ ์Šคํ‚ค๋‹๊ณผ ๋ธ”๋ Œ๋“œ ์…ฐ์ดํ”„ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
GPU (Batched) ๋ฐฐ์นญ ๋ฐ ์ˆœ์„œ ๋ณ€๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ GPU์—์„œ ๋ฉ”์‹œ ์Šคํ‚ค๋‹๊ณผ ๋ธ”๋ Œ๋“œ ์…ฐ์ดํ”„ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์นญ์€ GPU์— ๋Œ€ํ•œ ๋””์ŠคํŒจ์น˜ ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ์ค„์ด๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Graphics Jobs (Experimental) ๊ทธ๋ž˜ํ”ฝ์Šค ์ž‘์—…(๋ฃจํ”„ ๋ Œ๋”)์„ ๋‹ค๋ฅธ CPU ์ฝ”์–ด์—์„œ ์‹คํ–‰ ์ค‘์ธ ์›Œ์ปค ์Šค๋ ˆ๋“œ์— ์˜คํ”„๋กœ๋“œํ•˜๋„๋ก Unity๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์ข…์ข… ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ดˆ๋ž˜ํ•˜๋Š” Camera.Render์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ๊ธฐ๋Šฅ์€ ์‹คํ—˜ ๋‹จ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒˆ๋กœ์šด ํฌ๋ž˜์‹œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
Graphics Jobs Mode ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉํ•  ๊ทธ๋ž˜ํ”ฝ์Šค ์žก ๋ชจ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Unity์˜ ์žก์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์žก ์‹œ์Šคํ…œ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ : ์ด ์˜ต์…˜์€ Graphics Jobs๊ฐ€ ํ™œ์„ฑํ™”๋˜๊ณ  Graphics APIs๊ฐ€ Vulkan์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Native ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์›Œ์ปค ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ Unity ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์›Œ์ปค ์Šค๋ ˆ๋“œ๋Š” ๋ Œ๋” ์Šค๋ ˆ๋“œ๊ฐ€ ์†Œ๋น„ํ•˜๋Š” ์ž‘์—… ์‹คํ–‰์ž์— ์ปค๋งจ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
Legacy ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์›Œ์ปค ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ Unity ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์›Œ์ปค ์Šค๋ ˆ๋“œ๋Š” ๋ Œ๋” ์Šค๋ ˆ๋“œ์— ์ปค๋งจ๋“œ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ Œ๋” ์Šค๋ ˆ๋“œ๋Š” Unity ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋ฅผ ์ฝ๊ณ  ์ด๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Split ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์›Œ์ปค ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ Unity ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ Œ๋” ์Šค๋ ˆ๋“œ๋Š” Unity ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋ฅผ ์ฝ๊ณ  ์ด๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ Œ๋” ์Šค๋ ˆ๋“œ๋Š” ์›Œ์ปค ์Šค๋ ˆ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ๋„ค์ดํ‹ฐ๋ธŒ ๊ทธ๋ž˜ํ”ฝ์Šค ์ปค๋งจ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
Texture compression formats ASTC, ETC2, ETC(RGB๋Š” ETC1, RGBA๋Š” ETC2) ๋ฐ DXTC, DXT + RGTC(BC4, BC5) ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํฌ๋งท์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ…์Šค์ฒ˜ ์••์ถ• ํฌ๋งท ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ด ๋ฆฌ์ŠคํŠธ์— ํ…์Šค์ฒ˜ ์••์ถ• ํƒ€๊ฒŒํŒ…์„ ์ง€์›ํ•  ์—ฌ๋Ÿฌ ํ…์Šค์ฒ˜ ์••์ถ• ํฌ๋งท์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๋ฆฌ์ŠคํŠธ์— DXT์™€ DXT + RGTC(BC4, BC5)๋ฅผ ๋‘˜ ๋‹ค ํฌํ•จํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํ…์Šค์ฒ˜ ์••์ถ• ํƒ€๊ฒŒํŒ…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ Unity๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ถ„ํ• ๋„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋นŒ๋“œ ์„ค์ •์˜ ํ…์Šค์ฒ˜ ์••์ถ• ์„ค์ •๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ…์Šค์ฒ˜ ์••์ถ• ์„ค์ •์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ APK๋กœ ์ต์ŠคํฌํŠธํ•˜๊ฑฐ๋‚˜ ๋นŒ๋“œํ•˜๋Š” ๊ฒฝ์šฐ Unity๋Š” ์ด ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ํ…์Šค์ฒ˜ ์••์ถ• ํฌ๋งท๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Normal Map Encoding XYZ ๋˜๋Š” DXT5nm-style์„ ์„ ํƒํ•˜์—ฌ ๋…ธ๋ฉ€ ๋งต ์ธ์ฝ”๋”ฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋…ธ๋ฉ€ ๋งต์— ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฝ”๋”ฉ ์ฒด๊ณ„ ๋ฐ ์••์ถ• ํฌ๋งท์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. DXT5nm-style ๋…ธ๋ฉ€ ๋งต์€ ํ’ˆ์งˆ์ด ๋” ๋†’์ง€๋งŒ ์…ฐ์ด๋”์—์„œ ๋””์ฝ”๋”ฉํ•  ๋•Œ ์„ฑ๋Šฅ์„ ๋” ๋งŽ์ด ์†Œ๋ชจํ•ฉ๋‹ˆ๋‹ค.
Lightmap Encoding ๋ผ์ดํŠธ๋งต์˜ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹ ๋ฐ ์••์ถ• ํฌ๋งท์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
Low Quality, Normal Quality, High Quality ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
HDR ํ๋ธŒ๋งต ์ธ์ฝ”๋”ฉ HDR ํ๋ธŒ๋งต์˜ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹ ๋ฐ ์••์ถ• ํฌ๋งท์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
Low Quality, Normal Quality, High Quality ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ผ์ดํŠธ๋งต: ๊ธฐ์ˆ  ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Lightmap Streaming ๋ผ์ดํŠธ๋งต์— ๋ฐ‰๋งต ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. Unity๋Š” ๋ผ์ดํŠธ๋งต์„ ์ƒ์„ฑํ•  ๋•Œ ๋ชจ๋“  ๋ผ์ดํŠธ๋งต์— ์ด ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ : ์ด ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ…์Šค์ฒ˜ ๋ฐ‰๋งต ์ŠคํŠธ๋ฆฌ๋ฐ ํ’ˆ์งˆ ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Streaming Priority ๋ฐ‰๋งต ์ŠคํŠธ๋ฆฌ๋ฐ ์‹œ์Šคํ…œ์—์„œ ๋ชจ๋“  ๋ผ์ดํŠธ๋งต์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Unity๋Š” ๋ผ์ดํŠธ๋งต์„ ์ƒ์„ฑํ•  ๋•Œ ๋ชจ๋“  ๋ผ์ดํŠธ๋งต์— ์ด ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์–‘์ˆ˜๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์Šต๋‹ˆ๋‹ค. ์œ ํšจํ•œ ๊ฐ’์€ -128๋ถ€ํ„ฐ 127๊นŒ์ง€์ž…๋‹ˆ๋‹ค.
Frame Timing Stats CPU/GPU ํ”„๋ ˆ์ž„ ํƒ€์ด๋ฐ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
OpenGL: Profiler GPU Recorders OpenGL๋กœ ๋ Œ๋”๋งํ•  ๋•Œ ํ”„๋กœํŒŒ์ผ๋Ÿฌ ๋ ˆ์ฝ”๋”๋ฅผ ํ™œ์„ฑํ™”ํ• ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค๋ฅธ ๋ Œ๋”๋ง API์— ๋Œ€ํ•ด ํ•ญ์ƒ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€๋งŒ, ํ”„๋ ˆ์ž„ ํƒ€์ด๋ฐ ํ†ต๊ณ„ ๋ฐ GPU ํ”„๋กœํŒŒ์ผ๋Ÿฌ์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•ด OpenGL์—์„œ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.
Allow HDR Display Output ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋  ๋•Œ HDR ๋ชจ๋“œ ์ถœ๋ ฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๋””์Šคํ”Œ๋ ˆ์ด์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋””์Šคํ”Œ๋ ˆ์ด๊ฐ€ HDR ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒŒ์ž„์ด ํ‘œ์ค€ ๋ชจ๋“œ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
HDR ๋””์Šคํ”Œ๋ ˆ์ด ์ถœ๋ ฅ ์‚ฌ์šฉ ๋ฉ”์ธ ๋””์Šคํ”Œ๋ ˆ์ด๊ฐ€ HDR์„ ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋  ๋•Œ HDR ์ถœ๋ ฅ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ์˜ต์…˜์€ Allow HDR Display Output์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Virtual Texturing (Experimental) ๊ฐ€์ƒ ํ…์Šค์ฒ˜๋ง ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ฐธ๊ณ : ๊ฐ€์ƒ ํ…์Šค์ฒ˜๋ง์€ Android์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
360 Stereo Capture Unity๊ฐ€ ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ 360 ์ด๋ฏธ์ง€ ๋ฐ ๋™์˜์ƒ์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : 360 ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ์บก์ฒ˜๋Š” Android์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Load/Store Action Debug Mode ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์—์„œ ๋ Œ๋”๋ง ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ •์˜๋˜์ง€ ์•Š์€ ํ”ฝ์…€์„ ํ•˜์ด๋ผ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. Build Settings์—์„œ Development Build๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ Unity ์—๋””ํ„ฐ ๊ฒŒ์ž„ ๋ทฐ์™€ ๋นŒ๋“œ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LoadStoreActionDebugModeSettings๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์—๋””ํ„ฐ ์ „์šฉ Load/Store Action Debug Mode๊ฐ€ Unity ์—๋””ํ„ฐ์—์„œ๋งŒ ์‹คํ–‰๋˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ฐธ๊ณ :์ด ํ”„๋กœํผํ‹ฐ๋Š” Load/Store Action Debug Mode๊ฐ€ true๋กœ ์„ค์ •๋˜์—ˆ์„ ๋•Œ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Vulkan ์„ค์ •

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
SRGB Write Mode ๋Ÿฐํƒ€์ž„ ๋™์•ˆ Graphics.SetSRGBWrite() ๋ Œ๋”๋Ÿฌ๊ฐ€ sRGB ์“ฐ๊ธฐ ๋ชจ๋“œ๋ฅผ ํ† ๊ธ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค. ์ฆ‰ Linear-to-sRGB ์“ฐ๊ธฐ ์ƒ‰์ƒ ์ „ํ™˜์„ ์ผ์‹œ์ ์œผ๋กœ ๋„๊ณ ์ž ํ•  ๊ฒฝ์šฐ ์ด ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ชจ๋ฐ”์ผ ํƒ€์ผ ๊ธฐ๋ฐ˜ GPU์˜ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ์ฃผ๋ฏ€๋กœ ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ํ™œ์„ฑํ™”ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
Number of swapchain buffers Vulkan ๋ Œ๋”๋Ÿฌ์—์„œ ์ด์ค‘ ๋ฒ„ํผ๋ง์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ 2๋กœ ์„ค์ •ํ•˜๊ณ , ์‚ผ์ค‘ ๋ฒ„ํผ๋ง์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 3์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ์ผ๋ถ€ ํ”Œ๋žซํผ์˜ ์ง€์—ฐ์— ๋„์›€์ด ๋  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ธ 3์—์„œ ๋ณ€๊ฒฝํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ๋ฒ„ํผ๋ง์€ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Android์—์„œ๋Š” ์ด ์„ค์ •์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
Acquire swapchain image late as possible ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ Vulkan์€ ํ”„๋ ˆ์ž„์„ ์˜คํ”„์Šคํฌ๋ฆฐ ์ด๋ฏธ์ง€๋กœ ๋ Œ๋”๋งํ•  ๋•Œ๊นŒ์ง€ ๋ฐฑ๋ฒ„ํผ ํš๋“์„ ์ง€์—ฐํ•ฉ๋‹ˆ๋‹ค. Vulkan์€ ์ด๋ฅผ ์œ„ํ•ด ์Šคํ…Œ์ด์ง• ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฐฑ๋ฒ„ํผ๋ฅผ ํ‘œ์‹œํ•  ๋•Œ ์ถ”๊ฐ€ blit์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ์ด์ค‘ ๋ฒ„ํผ๋ง๊ณผ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ถ”๊ฐ€ blit์ด ๋Œ€์—ญํญ์„ ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
Recycle command buffers Unity์—์„œ CommandBuffers๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ์žฌํ™œ์šฉํ• ์ง€ ํ˜น์€ ํ•ด์ œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Apply display rotation during rendering ๋””์Šคํ”Œ๋ ˆ์ด์˜ ๊ธฐ๋ณธ ๋ฐฉํ–ฅ์œผ๋กœ ๋ชจ๋“  ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งŽ์€ ๊ธฐ๊ธฐ์—์„œ ์„ฑ๋Šฅ์ƒ์˜ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”„๋ ˆ์ž„๋ฒ„ํผ ๋ฐฉํ–ฅ ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Android Vulkan Deny Filter List Unity ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ Vulkan API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” Android ๊ธฐ๊ธฐ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ธฐ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑฐ๋ถ€ ๊ธฐ์ค€์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. Vulkan API ๋ฒ„์ „๊ณผ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ •๊ทœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Unity ์—๋””ํ„ฐ์— ์ž˜๋ชป๋œ ์ •๊ทœ ํ‘œํ˜„์‹์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ Vulkan API ์‚ฌ์šฉ ํ—ˆ์šฉ ๋˜๋Š” ๊ฑฐ๋ถ€ ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ : ํ”Œ๋ ˆ์ด์–ด ์„ค์ •์— OpenGLES3 ๊ฐ™์€ ๋Œ€์ฒด ๊ทธ๋ž˜ํ”ฝ์Šค API๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฑฐ๋ถ€ ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋Š” ๊ธฐ๊ธฐ์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Vendor Android ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” GPU ํ•˜๋“œ์›จ์–ด์˜ ๊ณต๊ธ‰์—…์ฒด ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ: Qualcomm, ARM
Device Name Android ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” GPU ๋ชจ๋ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ: Adreno (TM) 740
Brand Android ๊ธฐ๊ธฐ์˜ ์ œ์กฐ์‚ฌ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ: Google, Samsung
Product Name Android ๊ธฐ๊ธฐ์˜ ์ œํ’ˆ ์ฝ”๋“œ๋ช…์ž…๋‹ˆ๋‹ค. ์˜ˆ: Barbet, Mermaid
Android OS version ๊ธฐ๊ธฐ๊ฐ€ ์‹คํ–‰๋˜๋Š” Android ์šด์˜ ์ฒด์ œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์˜ˆ: 13
Vulkan API version Android ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ Vulkan API ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ๋งท ์ค‘ ํ•˜๋‚˜๋กœ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
โ€ข MinorVersion๊ณผ PatchVersion์ด ์„ ํƒ ์‚ฌํ•ญ์ธ MajorVersion.MinorVersion.PatchVersion. ์˜ˆ: 1.1.128
โ€ข ์ตœ๋Œ€ 8์ž๋ฆฌ๊ณ  0x๋กœ ์‹œ์ž‘ํ•˜๋Š” 16์ง„์ˆ˜ ํฌ๋งท ์˜ˆ: 0x00401080

์ฐธ๊ณ : ์ด ํŒŒ๋ผ๋ฏธํ„ฐ์—๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Driver version ํ•„์š”ํ•œ ์ตœ์†Œ Vulkan ๊ธฐ๊ธฐ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ๋งท ์ค‘ ํ•˜๋‚˜๋กœ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
โ€ข MinorVersion๊ณผ PatchVersion์ด ์„ ํƒ ์‚ฌํ•ญ์ธ MajorVersion.MinorVersion.PatchVersion. ์˜ˆ: 0.676.0.
โ€ข ์ตœ๋Œ€ 8์ž๋ฆฌ๊ณ  0x๋กœ ์‹œ์ž‘ํ•˜๋Š” 16์ง„์ˆ˜ ํฌ๋งท ์˜ˆ: 0x002a4000

์ฐธ๊ณ : ์ด ํŒŒ๋ผ๋ฏธํ„ฐ์—๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Android Vulkan Allow Filter List Unity ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ ์–ธ์ œ๋“ ์ง€ Vulkan ๊ทธ๋ž˜ํ”ฝ์Šค API๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” Android ๊ธฐ๊ธฐ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๊ธฐ๊ฐ€ ๊ฑฐ๋ถ€ ๋ฐ ํ—ˆ์šฉ ํ•„ํ„ฐ ๋ฆฌ์ŠคํŠธ์— ๋ชจ๋‘ ํฌํ•จ๋œ ๊ฒฝ์šฐ ํ—ˆ์šฉ ํ•„ํ„ฐ๋ฅผ ์šฐ์„  ์ ์šฉํ•˜๊ณ  ๊ธฐ๊ธฐ๋Š” Vulkan API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ ํฐ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธฐ๊ธฐ๋Š” Vulkan API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œํ•˜๊ณ , ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๊ธฐ๊ธฐ ์ค‘ ์„ฑ๋Šฅ์ด ๋” ๋‚˜์€ ๊ธฐ๊ธฐ๋Š” Vulkan API๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ถ€ ๋ฐ ํ—ˆ์šฉ ํ•„ํ„ฐ ๋ฆฌ์ŠคํŠธ ๋ชจ๋‘์— ๋™์ผํ•œ ๊ฐ’์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ Unity๋Š” ๋ฆฌ์ŠคํŠธ์— ์ง€์ •๋œ ๊ธฐ์ค€์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ Vulkan API ์‚ฌ์šฉ ํ—ˆ์šฉ ๋˜๋Š” ๊ฑฐ๋ถ€ ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ : ๊ธฐ์ค€์„ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•œ ์„ค๋ช…์€ Android Vulkan ๊ฑฐ๋ถ€ ํ•„ํ„ฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์‹๋ณ„

Android ํ”Œ๋žซ์šฉ ์‹๋ณ„ ์„ค์ •
Android ํ”Œ๋žซ์šฉ ์‹๋ณ„ ์„ค์ •
ํ”„๋กœํผํ‹ฐ ๊ธฐ๋Šฅ
Override Default Package Name ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์˜ค๋ฒ„๋ผ์ด๋“œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ์„ค์ •์€ macOS, iOS, tvOS, Android์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.
Package Name ๊ธฐ๊ธฐ์™€ Google Play ์Šคํ† ์–ด์—์„œ ์•ฑ์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID๋Š” com.YourCompanyName.YourProductName ๊ทœ์น™์„ ๋”ฐ๋ผ์•ผ ํ•˜๋ฉฐ ์˜์ˆซ์ž์™€ ๋ฐ‘์ค„ ๋ฌธ์ž๋งŒ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID ์„ค์ •์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ค‘์š”: Unity๋Š” ์ž˜๋ชป๋œ ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
์ด ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด Override Default Package Name์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Version ๋ฒˆ๋“ค์˜ ๋ฐ˜๋ณต ์ž‘์—…(๋ฆด๋ฆฌ์Šค ๋˜๋Š” ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์Œ)์„ ์‹๋ณ„ํ•˜๋Š” ๋ฒˆ๋“ค์˜ ๋นŒ๋“œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „์€ ์ ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ˆซ์ž๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์ž์—ด์˜ ๊ณตํ†ต ํฌ๋งท์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค(์˜ˆ: 4.3.2). (iOS์™€ Android ๊ฐ„์— ๊ณต์œ ๋จ)
Bundle Version Code ๋‚ด๋ถ€ ๋ฒ„์ „ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์ด ์ˆซ์ž๋Š” ํ•œ ๋ฒ„์ „์ด ๋‹ค๋ฅธ ๋ฒ„์ „๋ณด๋‹ค ์ตœ์‹  ๋ฒ„์ „์ธ์ง€๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ ์ˆซ์ž๊ฐ€ ํด์ˆ˜๋ก ์ตœ์‹  ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฒˆํ˜ธ๋Š” versionName ์†์„ฑ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ โ€˜100โ€™ ๊ฐ™์€ ์ •์ˆ˜๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๋Œ€๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ ํ›„์† ๋ฒ„์ „์˜ ์ˆซ์ž๊ฐ€ ๋” ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ ๋ฒˆํ˜ธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ โ€˜x.yโ€™ ํฌ๋งท์ธ ๊ฒฝ์šฐ โ€˜xโ€™์™€ โ€˜yโ€™๋ฅผ 16๋น„ํŠธ์—์„œ ํ•˜์œ„ ๋ฐ ์ƒ์œ„๋กœ ๋ณ„๋„๋กœ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์ƒˆ ๋ฒ„์ „์ด ๋ฆด๋ฆฌ์Šค๋  ๋•Œ๋งˆ๋‹ค ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๋†’์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Split APKs by target architecture๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ์ด ๊ฐ’์„ 100000 ๋ฏธ๋งŒ์œผ๋กœ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ APK์—๋Š” ๊ณ ์œ ํ•œ ๋ฒ„์ „ ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ Unity๋Š” ARMv7์— 100000์„, ARM64์— 200000์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Minimum API Level ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ Android ๋ฒ„์ „(API ๋ ˆ๋ฒจ)์ž…๋‹ˆ๋‹ค.
Target API Level ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ํƒ€๊ฒŸ Android ๋ฒ„์ „(API ๋ ˆ๋ฒจ)์ž…๋‹ˆ๋‹ค.

์„ค์ •

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Scripting Backend ์‚ฌ์šฉํ•  ์Šคํฌ๋ฆฝํŒ… ๋ฐฑ์—”๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŒ… ๋ฐฑ์—”๋“œ์— ๋”ฐ๋ผ Unity๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ C# ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
Mono C# ์ฝ”๋“œ๋ฅผ .NET ๊ณต์šฉ ์ค‘๊ฐ„ ์–ธ์–ด(CIL)๋กœ ์ปดํŒŒ์ผํ•˜๊ณ , ๊ณต์šฉ ์–ธ์–ด ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น CIL์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Mono๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
IL2CPP C# ์ฝ”๋“œ๋ฅผ CIL๋กœ ์ปดํŒŒ์ผํ•˜๊ณ , CIL์„ C++๋กœ ์ „ํ™˜ํ•œ ๋‹ค์Œ, C++์„ ๋Ÿฐํƒ€์ž„์— ์ง์ ‘ ์‹คํ–‰๋˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ IL2CPP๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
API ํ˜ธํ™˜์„ฑ ์ˆ˜์ค€ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” .NET API๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ํ˜ธํ™˜์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—๋””ํ„ฐ ์ „์šฉ ์ฝ”๋“œ(์—๋””ํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ์—๋””ํ„ฐ ์ „์šฉ ์–ด์…ˆ๋ธ”๋ฆฌ ์ •์˜ ๋‚ด ์ฝ”๋“œ)์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŒ: ํƒ€์‚ฌ ์–ด์…ˆ๋ธ”๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์•„๋ž˜์˜ API ํ˜ธํ™˜์„ฑ ์ˆ˜์ค€ ์„น์…˜์— ์žˆ๋Š” ๊ถŒ์žฅ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•ด ๋ณด์‹ญ์‹œ์˜ค.
.Net Framework .NET Framework 4์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค(.NET Standard 2.0 ํ”„๋กœํŒŒ์ผ์˜ ๋ชจ๋“  ์‚ฌํ•ญ๊ณผ ์ถ”๊ฐ€ API ํฌํ•จ). .NET Standard 2.0์— ํฌํ•จ๋˜์ง€ ์•Š์€ API์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ํฐ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ์ผ๋ถ€ ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ถ”๊ฐ€ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
.Net Standard 2.1 ์ž‘์€ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
์—๋””ํ„ฐ ์–ด์…ˆ๋ธ”๋ฆฌ ํ˜ธํ™˜์„ฑ ๋ ˆ๋ฒจ ์—๋””ํ„ฐ ์–ด์…ˆ๋ธ”๋ฆฌ์— ์‚ฌ์šฉํ•  .NET API๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
.NET Framework .NET Framework 4์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค(.NET Standard 2.1 ํ”„๋กœํŒŒ์ผ์˜ ๋ชจ๋“  ์‚ฌํ•ญ๊ณผ ์ถ”๊ฐ€ API ํฌํ•จ). .NET Standard 2.1์— ํฌํ•จ๋˜์ง€ ์•Š์€ API์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ํฐ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ์ผ๋ถ€ ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ถ”๊ฐ€ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
.NET Standard .NET Standard 2.1๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ์ž‘์€ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
IL2CPP Code Generation Unity๊ฐ€ IL2CPP ์ฝ”๋“œ ์ƒ์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Scripting Backend๋ฅผ IL2CPP๋กœ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.
C++ Compiler Configuration IL2CPP ์ƒ์„ฑ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ ์‚ฌ์šฉํ•œ C++ ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
Debug Debug ์„ค์ •์€ ๋ชจ๋“  ์ตœ์ ํ™” ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹คํ–‰ ์†๋„๊ฐ€ ๋А๋ ค์ง‘๋‹ˆ๋‹ค.
Release Release ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๊ฐ€ ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๊ธฐ๋Š” ๋” ์ž‘์•„์ง€์ง€๋งŒ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
Master Master ์„ค์ •์€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ตœ์ ํ™”๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ๋Œ์–ด์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด MSVC++ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋žซํผ์—์„œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งํฌ ํƒ€์ž„ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๋ฉด ๋ฆด๋ฆฌ์Šค ์„ค์ •์„ ์‚ฌ์šฉํ•  ๋•Œ๋ณด๋‹ค ํ›จ์”ฌ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ ธ๋„ ๋œ๋‹ค๋ฉด Unity๋Š” Master ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„์˜ ์ตœ์ข… ๋ฒ„์ „์„ ๋นŒ๋“œํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
IL2CPP Stacktrace Information ์Šคํƒ ์ถ”์ ์— ํฌํ•จํ•  ์ •๋ณด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด ์œ ํ˜•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ IL2CPP๋กœ ๊ด€๋ฆฌ๋˜๋Š” ์Šคํƒ ์ถ”์ ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
๋ฉ”์„œ๋“œ ์ด๋ฆ„ ์Šคํƒ ์ถ”์ ์— ๊ฐ๊ฐ์˜ ๊ด€๋ฆฌ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
Method Name, File Name, and Line Number ์Šคํƒ ์ถ”์ ์— ๊ฐ๊ฐ์˜ ๊ด€๋ฆฌ๋˜๋Š” ๋ฉ”์„œ๋“œ์™€ ํŒŒ์ผ ๋ฐ ์ค„ ๋ฒˆํ˜ธ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œ๋œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋นŒ๋“œ ์‹œ๊ฐ„๊ณผ ์ตœ์ข… ํฌ๊ธฐ๋ฅผ ๋ชจ๋‘ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Use incremental GC ์ ์ง„์  ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋ฅผ ์‚ฌ์šฉ๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ ์ง„์  ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์— ๋ถ„์‚ฐํ•˜์—ฌ ํ”„๋ ˆ์ž„ ๊ธฐ๊ฐ„ ๋™์•ˆ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜๊ณผ ๊ด€๋ จ๋œ ์ŠคํŒŒ์ดํฌ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Allow downloads over HTTP HTTP๋ฅผ ํ†ตํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค์šด๋กœ๋“œํ• ์ง€ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. HTTPS๊ฐ€ ๋” ์•ˆ์ „ํ•œ ๊ถŒ์žฅ ํ”„๋กœํ† ์ฝœ์ด๋ฏ€๋กœ Not allowed๊ฐ€ ๊ธฐ๋ณธ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.
Not Allowed HTTP๋ฅผ ํ†ตํ•œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Allowed in Development Builds ๊ฐœ๋ฐœ ๋นŒ๋“œ์—์„œ HTTP๋ฅผ ํ†ตํ•œ ๋‹ค์šด๋กœ๋“œ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Always Allowed ๊ฐœ๋ฐœ ๋ฐ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ์—์„œ HTTP๋ฅผ ํ†ตํ•œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Mute Other Audio Sources Unity ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ค๋””์˜ค๋ฅผ ์ค‘์ง€ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ค‘์ง€ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ค๋””์˜ค๊ฐ€ Unity ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ๊ณ„์† ์žฌ์ƒ๋ฉ๋‹ˆ๋‹ค.
Target Architectures ํƒ€๊ฒŸํŒ…ํ•  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ARMv7 ARMv7 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ARM64 ARM64 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ํ”„๋กœํผํ‹ฐ๋Š” Scripting Backend๋ฅผ IL2CPP๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
x86โ€“64 (Magic Leap 2) x86โ€“64 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ํ”„๋กœํผํ‹ฐ๋Š” Scripting Backend๋ฅผ IL2CPP๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
Enable Armv9 Security Features for Arm64 ARM64 ๋นŒ๋“œ์— PAuth, PAC(ํฌ์ธํ„ฐ ์ธ์ฆ) ๋ฐ BTI(๋ธŒ๋žœ์น˜ ํƒ€๊ฒŸ ์‹๋ณ„)๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ํ”„๋กœํผํ‹ฐ๋Š” ARM64๋ฅผ ํƒ€๊ฒŸ ์•„ํ‚คํ…์ฒ˜๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
Split APKs by target architecture Target Architectures ์—์„œ ์„ ํƒํ•œ ๊ฐ CPU ์•„ํ‚คํ…์ฒ˜์— ๋ณ„๋„์˜ APK๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Google Play ์Šคํ† ์–ด ์‚ฌ์šฉ์ž์˜ ๋‹ค์šด๋กœ๋“œ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง‘๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ๋กœ Google Play ์Šคํ† ์–ด ๊ธฐ๋Šฅ์ด๋ฉฐ ๋‹ค๋ฅธ ์Šคํ† ์–ด์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์ค‘ APK ์ง€์›์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Install Location ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๊ธฐ์— ์„ค์น˜๋˜๋Š” ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„ค์น˜ ์œ„์น˜์— ๋Œ€ํ•œ Android ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Automatic ์šด์˜ ์ฒด์ œ๊ฐ€ ์ž๋™์œผ๋กœ ๊ฒฐ์ •ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์•ฑ์„ ์•ž๋’ค๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Prefer External ๊ฐ€๋Šฅํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€(SD ์นด๋“œ)์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ์—์„œ ์ด ๋™์ž‘์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•ฑ์ด ๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
Force Internal ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์— ์„ค์น˜ํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
Internet Access ๋„คํŠธ์›Œํ‚น API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋„ ๋„คํŠธ์›Œํ‚น(INTERNET) ๊ถŒํ•œ์„ Android ์•ฑ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ํ•ญ์ƒ ์ถ”๊ฐ€ํ• ์ง€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์šฉ ๋นŒ๋“œ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ _Require_๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
Auto ๋„คํŠธ์›Œํ‚น API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Require ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ํ•ญ์ƒ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Write Permission ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€(์˜ˆ: SD ์นด๋“œ)์— ์“ฐ๊ธฐ ์•ก์„ธ์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ํ•ด๋‹น ๊ถŒํ•œ์„ Android ์•ฑ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์ถ”๊ฐ€ํ• ์ง€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๋นŒ๋“œ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ External(SDCard)๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
Internal ๋‚ด๋ถ€ ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
External(SDCard) ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Filter Touches When Obscured ํ‘œ์‹œ๋œ ๋‹ค๋ฅธ ์ฐฝ์ด Unity ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€๋ฆฌ๊ณ  ์žˆ์„ ๋•Œ ์ˆ˜์‹ ๋œ ํ„ฐ์น˜๋ฅผ ํ๊ธฐํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ํƒญ์žฌํ‚น์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
Sustained Performance Mode ์—ด ์Šค๋กœํ‹€๋ง ์—†์ด ์žฅ๊ธฐ๊ฐ„ ๋™์•ˆ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ผ๊ด€๋œ ๊ธฐ๊ธฐ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋„๋ก ์„ค์ •ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ „๋ฐ˜์ ์ธ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Android ์ง€์† ์„ฑ๋Šฅ API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
Maximum Java Heap Size ๋นŒ๋“œ ์‹œ ์ตœ๋Œ€ Java ํž™ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ํฌ๊ธฐ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(MB). ๊ธฐ๋ณธ๊ฐ’์€ 4096์ž…๋‹ˆ๋‹ค.
Low Accuracy Location ๋‚ฎ์€ ์ •ํ™•๋„ ๊ฐ’์„ Android ์œ„์น˜ ๊ด€๋ จ API์— ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Predictive Back Gesture Support Android 13 ์ด์ƒ์—์„œ ๋ฐฑ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Android์˜ OnBackInvokedCallback์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Android TV Compatibility ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Android TV ํ˜ธํ™˜ ๊ฐ€๋Šฅ์œผ๋กœ ํ‘œ์‹œํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Android Game ์ถœ๋ ฅ ํŒจํ‚ค์ง€(APK)๋ฅผ ์ผ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•„๋‹ˆ๋ผ ๊ฒŒ์ž„์œผ๋กœ ํ‘œ์‹œํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ํ”„๋กœํผํ‹ฐ๋Š” Android TV Compatibility๊ฐ€ true๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Android Gamepad Support Level ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฒŒ์ž„ํŒจ๋“œ์— ์ œ๊ณตํ•˜๋Š” ์ง€์› ์ˆ˜์ค€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ํ”„๋กœํผํ‹ฐ๋Š” Android TV Compatibility๊ฐ€ true๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Works with D-Pad ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด DํŒจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ํŒจ๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Supports Gamepad ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฒŒ์ž„ํŒจ๋“œ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ํ•„์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค.
Requires Gamepad ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฒŒ์ž„ํŒจ๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
Warn about App Bundle size Android ์•ฑ ๋ฒˆ๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ํŠน์ • ์ž„๊ณ—๊ฐ’์„ ์ดˆ๊ณผํ•  ๋•Œ ๊ฒฝ๊ณ ๋ฅผ ์ˆ˜์‹ ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ๋˜์–ด ์žˆ์œผ๋ฉฐ Build Type์„ Release๋กœ ์„ ํƒํ•˜๊ณ  ๋นŒ๋“œ ์„ค์ •์—์„œ Build App Bundle (Google Play) ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
App Bundle size threshold ํฌ๊ธฐ๋ฅผ MB ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ๋ฒˆ๋“ค์ด ์ด ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด Unity๋Š” ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  Google Play ์ตœ๋Œ€ ํฌ๊ธฐ ์ œํ•œ์— ๋”ฐ๋ผ ์ƒ์„ฑ๋œ ๋ฆด๋ฆฌ์Šค ์•ฑ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์ „์ฒด ํฌ๊ธฐ ํ™•์ธ์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
Warn about Symbols size Android ์•ฑ ๋ฒˆ๋“ค ๋‚ด ์‹ฌ๋ณผ zip ํŒจํ‚ค์ง€ ๋˜๋Š” ๋‚ด์žฅ ์‹ฌ๋ณผ์˜ ํฌ๊ธฐ๊ฐ€ ํŠน์ • ์ž„๊ณ—๊ฐ’์„ ์ดˆ๊ณผํ•  ๋•Œ ๊ฒฝ๊ณ ๋ฅผ ์ˆ˜์‹ ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋นŒ๋“œ ์„ค์ •์—์„œ Debug Symbols๋ฅผ Public/Debugging์œผ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Symbols size threshold ํฌ๊ธฐ๋ฅผ MB ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ๋ณผ ํŒจํ‚ค์ง€๊ฐ€ ์ด ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด Unity์— ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Application Entry Point ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ƒ์„ฑํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Activity ํ™œ๋™ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
GameActivity GameActivity ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
Active Input Handling ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
Input Manager (Old) ๊ธฐ์กด์˜ ์ž…๋ ฅ ์„ค์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Input System Package (New) ์ž…๋ ฅ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด InputSystem ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Both ๋‘ ์‹œ์Šคํ…œ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ์˜ต์…˜์€ Android์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

API ํ˜ธํ™˜์„ฑ ์ˆ˜์ค€

๋ชจ๋“  ํƒ€๊ฒŸ์— ๋ชจ๋…ธ API ํ˜ธํ™˜์„ฑ ๋ ˆ๋ฒจ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์‚ฌ .NET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ .NET ํ˜ธํ™˜์„ฑ ๋ ˆ๋ฒจ์„ ๋ฒ—์–ด๋‚œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ถŒ์žฅ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

  1. Windows์šฉ ILSpy๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” API ํ˜ธํ™˜์„ฑ ์ˆ˜์ค€์˜ .NET ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ILSpy๋กœ ๋“œ๋ž˜๊ทธํ•ฉ๋‹ˆ๋‹ค. Frameworks/Mono/lib/mono/YOURSUBSET/์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํƒ€์‚ฌ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๋“œ๋ž˜๊ทธํ•ฉ๋‹ˆ๋‹ค.
  4. ํƒ€์‚ฌ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์˜ค๋ฅธ์ชฝ ํด๋ฆญํ•˜๊ณ  Analyze๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ถ„์„ ๋ณด๊ณ ์„œ์—์„œ Depends on ์„น์…˜์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ํƒ€์‚ฌ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์˜์กดํ•˜๊ณ  ์žˆ์ง€๋งŒ ์„ ํƒํ•œ .NET ํ˜ธํ™˜์„ฑ ๋ ˆ๋ฒจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ•ญ๋ชฉ์€ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์…ฐ์ด๋” ์„ค์ •

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Shader Precision Model ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ์ •๋ฐ€๋„ ์…ฐ์ด๋”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์…ฐ์ด๋”์—์„œ 16๋น„ํŠธ ์ •๋ฐ€๋„ ์‚ฌ์šฉ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Platform default ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์—์„œ๋Š” ๋” ๋‚ฎ์€ ์ •๋ฐ€๋„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ๋Š” ์ตœ๋Œ€ ์ •๋ฐ€๋„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Unified ํ”Œ๋žซํผ์—์„œ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋” ๋‚ฎ์€ ์ •๋ฐ€๋„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Strict shader variant matching ํ”Œ๋ ˆ์ด์–ด ๋นŒ๋“œ์— ์…ฐ์ด๋” ๋ฐฐ๋ฆฌ์–ธํŠธ๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ์…ฐ์ด๋”๋ฅผ ๋ Œ๋”๋ง์— ์‚ฌ์šฉํ•˜๊ณ  ์ฝ˜์†”์— ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š” ์…ฐ์ด๋”, ํ•˜์œ„ ์…ฐ์ด๋” ์ธ๋ฑ์Šค, ํŒจ์Šค, ์…ฐ์ด๋” ๋ฐฐ๋ฆฌ์–ธํŠธ ๊ฒ€์ƒ‰์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Keep Loaded Shaders Alive ๋กœ๋”ฉ๋œ ๋ชจ๋“  ์…ฐ์ด๋”๋ฅผ ํ™œ์„ฑ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  ์–ธ๋กœ๋”ฉ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์…ฐ์ด๋” ๋ฐฐ๋ฆฌ์–ธํŠธ ๋กœ๋”ฉ ์„ค์ •

์ด ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์— ์…ฐ์ด๋”๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Default chunk size (MB) ๋ชจ๋“  ํ”Œ๋žซํผ์— Unity๊ฐ€ ๋นŒ๋“œ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ €์žฅํ•˜๋Š” ์••์ถ•๋œ ์…ฐ์ด๋” ๋ฐฐ๋ฆฌ์–ธํŠธ ๋ฐ์ดํ„ฐ ์ฒญํฌ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 16์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์…ฐ์ด๋” ๋กœ๋”ฉ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Default chunk count Unity๊ฐ€ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณด๊ด€ํ•˜๋Š” ์••์ถ• ํ•ด์ œ๋œ ์ฒญํฌ์˜ ๊ธฐ๋ณธ ์ œํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋ฏ€๋กœ ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.
Override ์ด ๋นŒ๋“œ ํƒ€๊ฒŸ์— Default chunk size ๋ฐ Default chunk count ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Chunk size (MB) ์ด ๋นŒ๋“œ ํƒ€๊ฒŸ์—์„œ Default chunk size (MB) ๊ฐ’์„ ์˜ค๋ฒ„๋ผ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
Chunk count ์ด ๋นŒ๋“œ ํƒ€๊ฒŸ์—์„œ Default chunk count ๊ฐ’์„ ์˜ค๋ฒ„๋ผ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ

Android ํ”Œ๋žซํผ์šฉ ์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ ์„ค์ •
Android ํ”Œ๋žซํผ์šฉ ์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ ์„ค์ •
ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Scripting Define Symbols ์ปค์Šคํ…€ ์ปดํŒŒ์ผ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”Œ๋žซํผ๋ณ„ ์ปดํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Additional Compiler Arguments ์ด ๋ฆฌ์ŠคํŠธ์— ์—”ํŠธ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Roslyn ์ปดํŒŒ์ผ๋Ÿฌ์— ์ถ”๊ฐ€ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ถ”๊ฐ€ ์ธ์ˆ˜์— ํ•˜๋‚˜์˜ ์ƒˆ ์—”ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๋ ค๋ฉด Add(+)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด Remove(-)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ์ธ์ž๋ฅผ ๋ชจ๋‘ ์ถ”๊ฐ€ํ•œ ํ›„, ์ถ”๊ฐ€ ์ธ์ž๋ฅผ ํ–ฅํ›„ ์ปดํŒŒ์ผ์— ํฌํ•จํ•˜๋ ค๋ฉด Apply๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ ์šฉ๋œ ์ƒํƒœ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด Revert๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
Suppress Common Warnings C# ๊ฒฝ๊ณ  CS0169 ๋ฐ CS0649๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Allow โ€˜unsafeโ€™ Code ์‚ฌ์ „ ์ •์˜๋œ ์–ด์…ˆ๋ธ”๋ฆฌ(์˜ˆ: Assembly-CSharp.dll)์—์„œ โ€˜์•ˆ์ „ํ•˜์ง€ ์•Š์€โ€™ C# ์ฝ”๋“œ ์ปดํŒŒ์ผ์— ๋Œ€ํ•œ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋ฆฌ ์ •์˜ ํŒŒ์ผ(.asmdef)์˜ ๊ฒฝ์šฐ .asmdef ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ธ์ŠคํŽ™ํ„ฐ ์ฐฝ์— ํ‘œ์‹œ๋˜๋Š” ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Use Deterministic Compilation -deterministic C# ํ”Œ๋ž˜๊ทธ๋กœ ์ปดํŒŒ์ผ์„ ๋ฐฉ์ง€ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ปดํŒŒ์ผ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ๋Š” ์ปดํŒŒ์ผ๋  ๋•Œ๋งˆ๋‹ค ๋ฐ”์ดํŠธ๋‹จ์œ„๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ์ƒ์„ฑ์„ ์ œ์–ดํ•˜๋Š” C# ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ตœ์ ํ™”

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Prebake Collision Meshes ๋นŒ๋“œ ์‹œ ์ถฉ๋Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”์‹œ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Preloaded Assets ์‹œ์ž‘ ์‹œ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋กœ๋“œํ•  ์—์…‹์˜ ๋ฐฐ์—ด์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ ์—์…‹์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด Size ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์„ ๋Š˜๋ฆฐ ๋‹ค์Œ, ์ƒˆ๋กœ ํ‘œ์‹œ๋˜๋Š” Element ์ƒ์ž์— ๋กœ๋“œํ•  ์—์…‹์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์—”์ง„ ์ฝ”๋“œ ์ŠคํŠธ๋ฆฝ Unity Linker ํˆด์„ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” Unity ์—”์ง„ ๊ธฐ๋Šฅ์˜ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ IL2CPP ์Šคํฌ๋ฆฝํŒ… ๋ฐฑ์—”๋“œ์™€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  DLL์„ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์•ฑ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” DLL์„ ์ œ๊ฑฐํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด์˜ ๋นŒ๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ์•ฑ์ด ํ˜„์žฌ ์„ค์ •์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ œ๊ฑฐ๋˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒฝ์šฐ, ์•ฑ์„ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ Unity๊ฐ€ ๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
Managed Stripping Level Unity๊ฐ€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ด€๋ฆฌ๋˜๋Š” (C#) ์ฝ”๋“œ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ ๊ทน์ ์œผ๋กœ ์ŠคํŠธ๋ฆฌํ•‘ํ• ์ง€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. Unity๊ฐ€ ์•ฑ์„ ๋นŒ๋“œํ•  ๋•Œ Unity Linker ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ด€๋ฆฌ๋˜๋Š” DLL์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ŠคํŠธ๋ฆฌํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ŠคํŠธ๋ฆฌํ•‘ํ•˜๋ฉด ๊ฒฐ๊ณผ ์‹คํ–‰ ํŒŒ์ผ์ด ์ž‘์•„์ง€์ง€๋งŒ, ์‚ฌ์šฉ ์ค‘์ธ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์˜ต์…˜๊ณผ IL2CPP๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ”์ดํŠธ์ฝ”๋“œ ์ŠคํŠธ๋ฆฌํ•‘์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ManagedStrippingLevel์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Minimal ์ด๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, UnityEngine, Windows Runtime ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์ŠคํŠธ๋ฆฌํ•‘ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ฎ์Œ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ๊ด€๋ฆฌ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋นŒ๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  Mono/IL2CPP ๋นŒ๋“œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค.
์ค‘๊ฐ„ UnityLinker๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Low ์ด์ƒ์œผ๋กœ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ์ปค์Šคํ…€ link.xml ํŒŒ์ผ์„ ์ง€์›ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ๋ฐ˜์‚ฌ ์ฝ”๋“œ ๊ฒฝ๋กœ๋Š” ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋†’์Œ UnityLinker๋Š” ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ์ŠคํŠธ๋ฆฌํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Medium ์ด์ƒ์œผ๋กœ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋ถ€ ๋ฉ”์„œ๋“œ์˜ ๊ด€๋ฆฌ๋˜๋Š” ์ฝ”๋“œ ๋””๋ฒ„๊น…์€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค์Šคํ…€ link.xml ํŒŒ์ผ์„ ์ง€์›ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ๋ฐ˜์‚ฌ ์ฝ”๋“œ ๊ฒฝ๋กœ๋Š” ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๋ถ€ ํ”„๋กœํŒŒ์ผ๋Ÿฌ ํ™œ์„ฑํ™”(์ง€์› ์ค‘๋‹จ ์˜ˆ์ •) ์ด ๊ธฐ๋Šฅ์€ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์œผ๋ฉฐ ํ–ฅํ›„ Unity ๋ฒ„์ „์—์„œ๋Š” ์ œ์™ธ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์ฐฝ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค(๋ฉ”๋‰ด: Window > Analytics > Profiler).

ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์ฝ˜์†”์—์„œ ๋ณด๊ณ ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ณด๊ณ ์„œ์—๋Š” ๊ฐ Unity ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ๊ฐ ํ”„๋ ˆ์ž„์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„ ์‹œ๊ฐ„์˜ 30ํ”„๋ ˆ์ž„์— ๊ฑธ์นœ ํ‰๊ท ์ด ์ œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Vertex Compression ์ฑ„๋„๋‹น ๋ฒ„ํ…์Šค ์••์ถ•์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ๋ฉ”์‹œ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๋ฒ„ํ…์Šค ์••์ถ•์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ๋ฉ”์‹œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋ฉฐ GPU ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฒ„ํ…์Šค ์••์ถ•์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด ์„ค์ •์˜ ์ œํ•œ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฉ”์‹œ ๋ฐ์ดํ„ฐ ์••์ถ•์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Optimize Mesh Data ๋นŒ๋“œ์— ์‚ฌ์šฉ๋œ ๋ฉ”์‹œ์—์„œ ๋ฏธ์‚ฌ์šฉ ๋ฒ„ํ…์Šค ์†์„ฑ ์ŠคํŠธ๋ฆฌํ•‘ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋ฉ”์‹œ์˜ ๋ฐ์ดํ„ฐ ์–‘์„ ์ค„์—ฌ ๋นŒ๋“œ ํฌ๊ธฐ, ๋กœ๋”ฉ ์‹œ๊ฐ„, ๋Ÿฐํƒ€์ž„ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„ ์‹œ ๋จธํ‹ฐ๋ฆฌ์–ผ ๋˜๋Š” ์…ฐ์ด๋” ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ PlayerSettings.stripUnusedMeshComponents๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
ํ…์Šค์ฒ˜ ๋ฐ‰๋งต ์ŠคํŠธ๋ฆฌํ•‘ ๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ๋ฐ‰๋งต ์ŠคํŠธ๋ฆฌํ•‘์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋นŒ๋“œ ์‹œ ํ…์Šค์ฒ˜์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐ‰๋งต์ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
Unity๋Š” ๋ฐ‰๋งต์˜ ๊ฐ’์„ ํ˜„์žฌ ํ”Œ๋žซํผ์˜ ํ’ˆ์งˆ ์„ค์ •๊ณผ ๋น„๊ตํ•˜์—ฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐ‰๋งต์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”Œ๋žซํผ์˜ ๋ชจ๋“  ํ’ˆ์งˆ ์„ค์ •์—์„œ ๋ฐ‰๋งต ๊ฐ’์ด ์ œ์™ธ๋œ ๊ฒฝ์šฐ Unity๋Š” ๋นŒ๋“œ ์‹œ์ ์— ํ•ด๋‹น ๋ฐ‰๋งต์„ ๋นŒ๋“œ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. QualitySettings.globalTextureMipmapLimit์ด ์ œ๊ฑฐ๋œ ๋ฐ‰๋งต ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, Unity๋Š” ์ œ๊ฑฐ๋˜์ง€ ์•Š์€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฐ‰๋งต ๊ฐ’์œผ๋กœ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์Šคํƒ ์ถ”์ 

ํ•„์š”ํ•œ ๋กœ๊น… ์œ ํ˜•์— ๋”ฐ๋ผ ๊ฐ ๋กœ๊ทธ ์œ ํ˜•(Error, Assert, Warning, Log, Exception)์— ํ•ด๋‹นํ•˜๋Š” ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์›ํ•˜๋Š” ์Šคํƒ ์ถ”์  ๋ฉ”์„œ๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

Android ํ”Œ๋žซํผ์šฉ ๋กœ๊น… ์„ค์ •
Android ํ”Œ๋žซํผ์šฉ ๋กœ๊น… ์„ค์ •
ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
None ์–ด๋–ค ๋กœ๊ทธ๋„ ๊ธฐ๋กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ScriptOnly ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งŒ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
Full ํ•ญ์ƒ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์Šคํƒ ์ถ”์  ๋กœ๊น…์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ ˆ๊ฑฐ์‹œ

SkinnedMeshRenderers์˜ ๋ธ”๋ Œ๋“œ ์…ฐ์ดํ”„ ๊ฐ€์ค‘์น˜ ๋ฒ”์œ„๋ฅผ ๊ณ ์ •ํ•˜๋ ค๋ฉด Clamp BlendShapes (Deprecated) ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

ํผ๋ธ”๋ฆฌ์‹ฑ ์„ค์ •

๋‹ค์Œ ํผ๋ธ”๋ฆฌ์‹ฑ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ Unity๊ฐ€ Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Android ํผ๋ธ”๋ฆฌ์‹ฑ ํŒจ๋„
Android ํผ๋ธ”๋ฆฌ์‹ฑ ํŒจ๋„

์ฐธ๊ณ : ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ Unity๋Š” ํ‚ค์Šคํ† ์–ด ๋˜๋Š” ํ”„๋กœ์ ํŠธ ํ‚ค ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Keystore Manager ์ฐฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค์™€ ํ‚ค์Šคํ† ์–ด๋ฅผ ์ƒ์„ฑ, ์„ค์ •, ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. Keystore Manager ๋˜๋Š” ๋ฉ”์ธ Android Publishing ํŒจ๋„์—์„œ ๊ธฐ์กด ํ‚ค์Šคํ† ์–ด์™€ ํ‚ค๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค์Šคํ† ์–ด ๊ด€๋ฆฌ์ž ๋‚ด๋ถ€์—์„œ ์ด๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ Unity๋Š” Project Keystore ๋ฐ Project Key ํ•„๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ฑ„์›๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ‚ค์Šคํ† ์–ด ๊ด€๋ฆฌ์ž ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Project Keystore

ํ‚ค์Šคํ† ์–ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ์„œ๋ช… ํ‚ค๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Android ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ  ์ž๋ฃŒ Android ํ‚ค์Šคํ† ์–ด ์‹œ์Šคํ…œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์—ด๋ฆฐ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ํ‚ค์Šคํ† ์–ด๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด Project Keystore ์„ค์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์Šคํ† ์–ด๋ฅผ ๋กœ๋“œํ•˜๋ฉด Unity๋Š” ํ•ด๋‹น ํ‚ค์Šคํ† ์–ด์˜ ๋ชจ๋“  ํ‚ค๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์—ด๋ฆฐ ํ”„๋กœ์ ํŠธ์—์„œ ๊ธฐ์กด ํ‚ค์Šคํ† ์–ด๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Custom Keystore๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  2. Select ๋“œ๋กญ๋‹ค์šด์—์„œ Browse๋ฅผ ์„ ํƒํ•œ ํ›„ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ํ‚ค์Šคํ† ์–ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ํ‚ค์Šคํ† ์–ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ํ‚ค์Šคํ† ์–ด๊ฐ€ ์—†์œผ๋ฉด Custom Keystore๋ฅผ ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ๋กœ ๋‘์‹ญ์‹œ์˜ค.

Unity๋Š” ๋””๋ฒ„๊ทธ ํ‚ค์Šคํ† ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ํ‚ค์Šคํ† ์–ด๋Š” ์ž‘๋™ํ•˜๋Š” ํ‚ค์Šคํ† ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์„œ๋ช…ํ•˜๊ณ  ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ฑ ์Šคํ† ์–ด๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋กœ๊ทธ์ธํ•œ ์•ฑ์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์•ฑ ์Šคํ† ์–ด๊ฐ€ ๋””๋ฒ„๊ทธ ํ‚ค์Šคํ† ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ํšจ์„ฑ๊ณผ ์†Œ์œ ๊ถŒ์„ ํ™•์ธํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Custom Keystore Custom Keystore๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๊ธฐ์กด ํ‚ค์Šคํ† ์–ด๋ฅผ ๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Select Custom Keystore๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ์‚ฌ์šฉํ•˜๋ ค๋Š” ํ‚ค์Šคํ† ์–ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. Select ๋“œ๋กญ๋‹ค์šด์˜ ํŒŒํ‹ฐ์…˜ ์•„๋ž˜์— ์žˆ๋Š” ํ‚ค์Šคํ† ์–ด๋Š” ๋ฏธ๋ฆฌ ์ง€์ •ํ•œ ์ „์šฉ ์œ„์น˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ‚ค์Šคํ† ์–ด ์œ„์น˜ ์„ ํƒ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Path ํ‚ค์Šคํ† ์–ด ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. Unity๋Š” ์„ ํƒํ•œ ํ‚ค์Šคํ† ์–ด์— ๋”ฐ๋ผ ์ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
Password ์„ ํƒํ•œ ํ‚ค์Šคํ† ์–ด๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค์Šคํ† ์–ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

Project Key

ํ‚ค์Šคํ† ์–ด๋ฅผ ๋กœ๋“œํ•˜๋ฉด Unity๋Š” ํ•ด๋‹น ํ‚ค์Šคํ† ์–ด์˜ ๋ชจ๋“  ํ‚ค๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. Project Key ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํ‚ค์Šคํ† ์–ด์—์„œ ์—ด๋ฆฐ ํ”„๋กœ์ ํŠธ์˜ ํ™œ์„ฑ ํ‚ค๋กœ ์‚ฌ์šฉํ•  ํ‚ค๋ฅผ ํ•˜๋‚˜ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Alias ์—ด๋ฆฐ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ํ‚ค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
Password ํ‚ค ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

Build

๊ธฐ๋ณธ์ ์œผ๋กœ Unity๋Š” Unity ์„ค์น˜ ์‹œ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ, Gradle ํ…œํ”Œ๋ฆฟ, Proguard ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. Android Publishing Settings์˜ Build ์„น์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์ด๋‚˜__ Gradle__์—ฌ๋Ÿฌ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” Android ๋นŒ๋“œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž๋™ํ™”๋กœ ์ธํ•ด ๋งŽ์€ ์ผ๋ฐ˜์ ์ธ ๋นŒ๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด
See in Glossary
ํ…œํ”Œ๋ฆฟ ๋˜๋Š” Proguard ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

  1. ํ•ด๋‹น ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Unity๊ฐ€ ํ”„๋กœ์ ํŠธ์— ๊ธฐ๋ณธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ํ•ด๋‹น ํŒŒ์ผ ์œ„์น˜๊ฐ€ ์ฒดํฌ๋ฐ•์Šค ์•„๋ž˜์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  2. ์ƒˆ ํŒŒ์ผ์„ ์—ด๊ณ  ๋ณ€๊ฒฝ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ด ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Unity๋Š” ๋‹ค์Œ ๋ฒˆ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•  ๋•Œ ์ด ํŒŒ์ผ์— ์ €์žฅ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Build ์„น์…˜์˜ ์„ค์ •์€ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Custom Main Manifest Android LibraryManifest.xml ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ/Unity ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์˜ ์ฑ…์ž„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Unity ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Custom Launcher Manifest Android LauncherManifest.xml ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Ÿฐ์ฒ˜์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Unity ๋Ÿฐ์ฒ˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์˜ ์ฑ…์ž„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Unity ๋Ÿฐ์ฒ˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Custom Main Gradle Template mainTemplate.gradle ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gradle ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Custom Launcher Gradle Template launcherTemplate.gradle ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gradle ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Custom Base Gradle Template baseProjectTemplate.gradle ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ํ…œํ”Œ๋ฆฟ๊ณผ Gradle ํ”„๋กœ์ ํŠธ ๊ฐ„์— ๊ณต์œ ๋˜๋Š” ๊ตฌ์„ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gradle ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Custom Gradle Properties Template gradle.properties ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” Gradle ๋นŒ๋“œ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ์„ค์ •์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
โ€ข JVM(Java ๊ฐ€์ƒ ๋จธ์‹ ) ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •
โ€ข Gradle์ด ์—ฌ๋Ÿฌ JVM์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ
โ€ข ์ถ•์†Œ๋ฅผ ์ˆ˜ํ–‰ํ•  ํˆด์„ ์„ ํƒํ•˜๋Š” ํ”„๋กœํผํ‹ฐ
โ€ข ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•  ๋•Œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์••์ถ•ํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ
Custom Gradle Settings Template settingsTemplate.gradle ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ์™ธ๋ถ€ ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‹ฐํŒฉํŠธ ์ €์žฅ์†Œ ์„ ์–ธ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Custom Proguard File proguard.txt ํŒŒ์ผ์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ๊ฐ€๋Šฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” ์ถ•์†Œ ํ”„๋กœ์„ธ์Šค์˜ ๊ตฌ์„ฑ ์„ค์ •์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ•์†Œ๋กœ ์ธํ•ด ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ์ผ๋ถ€ Java ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜๋Š” ๊ฒฝ์šฐ ์ด ํŒŒ์ผ์— ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ถ•์†Œ ๊ธฐ์ˆ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Minify

์ถ•์†Œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋“œ๋ฅผ ์ถ•์†Œํ•˜๊ณ  ๋ณต์žกํ•˜๊ฒŒ ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ์ฝ”๋“œ๋ฅผ ๋ถ„ํ• ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Minify ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ Unity๊ฐ€ ๋นŒ๋“œ์— ์ถ•์†Œ๋ฅผ ์ ์šฉํ•  ์‹œ๊ธฐ์™€ ๋ฐฉ์‹์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋””๋ฒ„๊ทธ ๋นŒ๋“œ๊ฐ€ ์•„๋‹Œ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ์—๋งŒ ์ถ•์†Œ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ถ•์†Œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ๋นŒ๋“œ ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ตœ์ ํ™”๋กœ ์ธํ•ด ๋””๋ฒ„๊น…์ด ๋” ๋ณต์žกํ•ด์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : Java ์ฝ”๋“œ๊ฐ€ ๋ฆฌํ”Œ๋ ‰์…˜์„ ํ†ตํ•ด ์ฐธ์กฐ๋˜๋Š” ๊ฒฝ์šฐ, ์ถ•์†Œ ํ”„๋กœ์„ธ์Šค(R8/Proguard)๋Š” ์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ž„์„ ์ถ”์ธกํ•  ์ˆ˜ ์—†์–ด ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ปค์Šคํ…€ Proguard ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Minify ์„น์…˜์˜ ์„ค์ •์€ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์„ค๋ช…
Release Unity๊ฐ€ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์ถ•์†Œํ•˜๋„๋ก ๋งŒ๋“ค๋ ค๋ฉด ์ด ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Debug Unity๊ฐ€ ๋””๋ฒ„๊ทธ ๋นŒ๋“œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์ถ•์†Œํ•˜๋„๋ก ๋งŒ๋“ค๋ ค๋ฉด ์ด ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

Split Application Binary

์ถœ๋ ฅ ํŒจํ‚ค์ง€๋ฅผ ๋ฉ”์ธ(APK) ๋ฐ ํ™•์žฅ(OBB) ํŒจํ‚ค์ง€๋กœ ๋ถ„ํ• ํ•˜๋ ค๋ฉด Split Application Binary ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. 100MB๋ณด๋‹ค ํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํผ๋ธ”๋ฆฌ์‹œํ•˜๋ ค๋ฉด Google Play ์Šคํ† ์–ด์—์„œ ์ด ์˜ต์…˜์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

Report Dependencies in App Bundle

Google Play์šฉ AAB(Android ์•ฑ ๋ฒˆ๋“ค)๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์•ฑ ๋ฒˆ๋“ค์— ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•ฑ ์ข…์†์„ฑ ๋ณด๊ณ  ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฐธ๊ณ : Android Build Settings์—์„œ Build App Bundle (Google Play) ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ด ์„ค์ •๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



  • 5.5์—์„œ ์—…๋ฐ์ดํŠธ๋œ ๊ธฐ๋Šฅ
  • 2017.3์— Sustained Performance Mode ์ถ”๊ฐ€๋จ
  • 2018.1์— .NET 4.x ๋Ÿฐํƒ€์ž„ ์ถ”๊ฐ€๋จ
  • 2018.2์— Android Multiple APK ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋จ
  • 2019.1์— Android์šฉ OpenGL ES 3.2 ์ง€์› ์ถ”๊ฐ€๋จ NewIn20191
  • Unity 2019.1์— Input System ํ”„๋ฆฌ๋ทฐ ์ถ”๊ฐ€๋จ
  • Unity 2019.1์— Render outside safe area ์ถ”๊ฐ€๋จ
  • Unity 2019.2์— ์•ฑ ๋ฒˆ๋“ค ํฌ๊ธฐ ์˜ต์…˜์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ์ถ”๊ฐ€๋จ
  • Unity 2019.3์—์„œ GPU ์Šคํ‚ค๋‹์˜ ์ด๋ฆ„์ด ์ปดํ“จํŠธ ์Šคํ‚ค๋‹์œผ๋กœ ๋ณ€๊ฒฝ๋จ
  • Unity 2019.3์—์„œ Vuforia ์ œ๊ฑฐ๋จ
  • Unity 2019.3์—์„œ ๋นŒํŠธ์ธ XR SDK ์ง€์› ์ค‘๋‹จ๋จ NewIn20193
  • ํ…์Šค์ฒ˜ ์••์ถ• ํฌ๋งท ์—…๋ฐ์ดํŠธ๋จ

PlayerSettingsAndroid

Set up the Android SDK Target API
Android ํ‚ค์Šคํ† ์–ด