
๐ ๋ณธ ํฌ์คํ ์ Unity UI ๊ณต์ ๋งค๋ด์ผ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
์ ๋ํฐ UI๋ ๊ฒ์๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ UI ํดํท์ ๋๋ค. ์ด๋ ๊ฒ์ ์ค๋ธ์ ํธ(GameObject) ๊ธฐ๋ฐ์ UI ์์คํ ์ผ๋ก, ์ปดํฌ๋ํธ(Components)์ ๊ฒ์ ๋ทฐ(Game View)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ฐฐ์นํ๊ณ , ์์น๋ฅผ ์กฐ์ ํ๋ฉฐ, ์คํ์ผ์ ์ง์ ํฉ๋๋ค.
Text, Image, Raw Image, Mask, Effects

Text ์ปดํฌ๋ํธ๋ '๋ผ๋ฒจ(Label)'์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ํ์๋ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๋ ํ ์คํธ ์์ญ์ ๊ฐ์ง๊ณ ์์ด์. ํฐํธ, ํฐํธ ์คํ์ผ, ํฐํธ ํฌ๊ธฐ๋ฅผ ์ค์ ํ ์ ์๊ณ , ๋ฆฌ์น ํ ์คํธ(rich text) ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ง ์ฌ๋ถ๋ ์ง์ ํ ์ ์์ต๋๋ค.
ํ ์คํธ์ ์ ๋ ฌ ๋ฐฉ์, ํ ์คํธ๊ฐ ์ง์ฌ๊ฐํ์ ๋๋น๋ ๋์ด๋ณด๋ค ํด ๊ฒฝ์ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์ ํ๋ ์ํ ๋ฐ ์์ง ์ค๋ฒํ๋ก์ฐ(overflow) ์ค์ , ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๋ง์ถฐ ํ ์คํธ ํฌ๊ธฐ๋ฅผ ์๋์ผ๋ก ์กฐ์ ํด ์ฃผ๋ 'Best Fit' ์ต์ ๋ฑ์ด ์ ๊ณต๋ฉ๋๋ค.

Image๋ Rect Transform ์ปดํฌ๋ํธ์ Image ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. Image ์ปดํฌ๋ํธ์ 'Target Graphic' ํ๋์ ์คํ๋ผ์ดํธ(sprite)๋ฅผ ์ ์ฉํ ์ ์๊ณ , 'Color' ํ๋์์ ์์์ ์ค์ ํ ์ ์์ต๋๋ค. Material๋ ์ ์ฉํ ์ ์์ต๋๋ค. Image Type ํ๋๋ ์ ์ฉ๋ ์คํ๋ผ์ดํธ๊ฐ ์ด๋ป๊ฒ ํ์๋ ์ง๋ฅผ ์ ์ํ๋ฉฐ, ๋ค์ ์ต์ ๋ค์ด ์์ต๋๋ค:
Simple : ์คํ๋ผ์ดํธ ์ ์ฒด์ ํฌ๊ธฐ๋ฅผ ๊ท ๋ฑํ๊ฒ ์กฐ์ ํฉ๋๋ค.
Sliced : 3x3 ์คํ๋ผ์ดํธ ๋ถํ ์ ํ์ฉํ์ฌ, ํฌ๊ธฐ ์กฐ์ ์ ๋ชจ์๋ฆฌ๊ฐ ์๊ณก๋์ง ์๊ณ ์ค์ ๋ถ๋ถ๋ง ๋์ด๋๊ฒ ํฉ๋๋ค.
Tiled : Sliced์ ์ ์ฌํ์ง๋ง, ์ค์ ๋ถ๋ถ์ ๋๋ฆฌ๋ ๋์ ํ์ผ์ฒ๋ผ ๋ฐ๋ณตํด์ ์ฑ์๋๋ค. ํ ๋๋ฆฌ๊ฐ ์ ํ ์๋ ์คํ๋ผ์ดํธ์ ๊ฒฝ์ฐ, ์คํ๋ผ์ดํธ ์ ์ฒด๊ฐ ํ์ผ๋ง๋ฉ๋๋ค.
Filled : Simple๊ณผ ๋์ผํ๊ฒ ์คํ๋ผ์ดํธ๋ฅผ ํ์ํ์ง๋ง, ์ ์๋ ์์ ๊ณผ ๋ฐฉํฅ, ๋ฐฉ์์ ๊ธฐ์ค์ผ๋ก ์คํ๋ผ์ดํธ๋ฅผ ์ฑ์ ๋ฃ์ต๋๋ค.(Simple ๋๋ Filled๊ฐ ์ ํ๋ ๋ ๋ํ๋๋ 'Set Native Size' ์ต์ ์ ์ด๋ฏธ์ง๋ฅผ ์๋ ์คํ๋ผ์ดํธ ํฌ๊ธฐ๋ก ๋๋๋ฆฝ๋๋ค.)
์ด๋ฏธ์ง๋ 'Texture Type' ์ค์ ์์ 'Sprite (2D / UI)'๋ฅผ ์ ํํ์ฌ UI ์คํ๋ผ์ดํธ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์คํ๋ผ์ดํธ๋ ๊ธฐ์กด GUI ์คํ๋ผ์ดํธ๋ณด๋ค ์ถ๊ฐ์ ์ธ ๊ฐ์ ธ์ค๊ธฐ(import) ์ค์ ์ด ์๋๋ฐ, ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ์คํ๋ผ์ดํธ ์๋ํฐ๊ฐ ์ถ๊ฐ๋์๋ค๋ ์ ์ ๋๋ค. ์คํ๋ผ์ดํธ ์๋ํฐ๋ ์ด๋ฏธ์ง๋ฅผ 9-์ฌ๋ผ์ด์ฑ(9-slicing)ํ๋ ์ต์ ์ ์ ๊ณตํ๋๋ฐ, ์ด๋ ์ด๋ฏธ์ง๋ฅผ 9๊ฐ์ ์์ญ์ผ๋ก ๋ถํ ํ์ฌ ์คํ๋ผ์ดํธ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ ๋ ๋ชจ์๋ฆฌ๊ฐ ๋์ด๋๊ฑฐ๋ ์๊ณก๋์ง ์๋๋ก ํฉ๋๋ค.

Image ์ปดํฌ๋ํธ๊ฐ ์คํ๋ผ์ดํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ๋ฉด, Raw Image๋ ํ ์ค์ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค (ํ ๋๋ฆฌ ๋ฑ์ด ์์). Raw Image๋ ๊ผญ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํด์ผ ํ๋ฉฐ, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ Image ์ปดํฌ๋ํธ๊ฐ ์ ํฉํฉ๋๋ค.
Mask๋ ๋์ ๋ณด์ด๋ UI ์ปจํธ๋กค์ ์๋์ง๋ง, ์ปจํธ๋กค์ ์์ ์์๋ค์ ์ธ๊ด์ ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ง์คํฌ๋ ์์ ์์๋ค์ ๋ถ๋ชจ์ ํํ์ ๋ง๊ฒ ์ ํ(์ฆ, "๋ง์คํน")ํฉ๋๋ค. ๋ฐ๋ผ์ ์์์ด ๋ถ๋ชจ๋ณด๋ค ํฌ๋๋ผ๋ ๋ถ๋ชจ ์์ ๋ค์ด๊ฐ๋ ๋ถ๋ถ๋ง ๋ณด์ด๊ฒ ๋ฉ๋๋ค.
์๊ฐ์ ์ปดํฌ๋ํธ์๋ ๊ฐ๋จํ ๊ทธ๋ฆผ์๋ ์ธ๊ณฝ์ ๊ฐ์ ๋ค์ํ ํจ๊ณผ๋ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ ์์ธํ ์ ๋ณด๋ UI ํจ๊ณผ(UI Effects) ์ฐธ์กฐ ํ์ด์ง๋ฅผ ํ์ธ.
์ํธ์์ฉ ์ปดํฌ๋ํธ๋ค์ ๊ทธ ์์ฒด๋ก๋ ๋์ ๋ณด์ด์ง ์์ผ๋ฉฐ, ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ค๋ฉด ํ๋ ์ด์์ ์๊ฐ์ ์ปดํฌ๋ํธ์ ๊ฒฐํฉ๋์ด์ผ ํฉ๋๋ค.
๋๋ถ๋ถ์ ์ํธ์์ฉ ์ปดํฌ๋ํธ๋ ๋ช ๊ฐ์ง ๊ณตํต์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ค์ ๋ชจ๋ '์ ํ ๊ฐ๋ฅ(selectable)'ํ๋ฉฐ, ์ด๋ ์ํ ๋ณํ(์ผ๋ฐ, ํ์ด๋ผ์ดํธ, ๋๋ฆผ, ๋นํ์ฑํ)๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๋ด์ฅ ๊ธฐ๋ฅ๊ณผ ํค๋ณด๋ ๋๋ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ '์ ํ ๊ฐ๋ฅ' ์์๋ก ํ์(navigation)ํ๋ ๊ธฐ๋ฅ์ ๊ณต์ ํ๋ค๋ ์๋ฏธ์ ๋๋ค. ์ด ๊ณต์ ๊ธฐ๋ฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ Selectable ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.
์ํธ์์ฉ ์ปดํฌ๋ํธ๋ค์ ์ฌ์ฉ์๊ฐ ์ปดํฌ๋ํธ์ ํน์ ๋ฐฉ์์ผ๋ก ์ํธ์์ฉํ ๋ ํธ์ถ๋๋ ํ๋ ์ด์์ UnityEvent๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. UI ์์คํ ์ UnityEvent์ ์ฐ๊ฒฐ๋ ์ฝ๋์์ ๋ฐ์ํ๋ ๋ชจ๋ ์์ธ๋ฅผ ํฌ์ฐฉํ๊ณ ๊ธฐ๋กํฉ๋๋ค.
Button์ ํด๋ฆญ๋์์ ๋ ์ํํ ์์
์ ์ ์ํ๋ OnClick UnityEvent๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.

Button ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Button ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Toggle์ ํ์ฌ ์ผ์ ธ ์๋์ง ๊บผ์ ธ ์๋์ง๋ฅผ ๊ฒฐ์ ํ๋ Is On ์ฒดํฌ๋ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด ๊ฐ์ ์ฌ์ฉ์๊ฐ ํ ๊ธ์ ํด๋ฆญํ ๋ ์ ํ๋๋ฉฐ, ์๊ฐ์ ์ธ ์ฒดํฌ๋งํฌ๋ ๊ทธ์ ๋ฐ๋ผ ์ผ์ง๊ฑฐ๋ ๊บผ์ง ์ ์์ต๋๋ค. ๋ํ, ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ์ํํ ์์
์ ์ ์ํ๋ OnValueChanged UnityEvent๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.

Toggle ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Toggle ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Toggle Group์ ์ํธ ๋ฐฐํ์ ์ธ(mutually exclusive) ํ ๊ธ๋ค์ ๊ทธ๋ฃนํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๊ฐ์ ๊ทธ๋ฃน์ ์ํ ํ ๊ธ๋ค์ ํ ๋ฒ์ ํ๋๋ง ์ ํ๋ ์ ์๋๋ก ์ ํ๋ฉ๋๋ค. ์ฆ, ํ๋๋ฅผ ์ ํํ๋ฉด ๋ค๋ฅธ ๋ชจ๋ ํ ๊ธ๋ค์ด ์๋์ผ๋ก ์ ํ ํด์ ๋ฉ๋๋ค.

Toggle Group ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Toggle Group ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Slider๋ ์ฌ์ฉ์๊ฐ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ ์ฌ์ด์์ ๋๋๊ทธํ ์ ์๋ ์ญ์ง์ Value(๊ฐ)๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ํ ๋๋ ์์ง ํํ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ํ, ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ์ํํ ์์
์ ์ ์ํ๋ OnValueChanged UnityEvent๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.

Slider ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Slider ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Scrollbar๋ 0์์ 1 ์ฌ์ด์ ์ญ์ง์ Value(๊ฐ)๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์คํฌ๋กค๋ฐ๋ฅผ ๋๋๊ทธํ๋ฉด ๊ทธ์ ๋ฐ๋ผ ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
์คํฌ๋กค๋ฐ๋ ์ข ์ข Scroll Rect ๋ฐ Mask์ ํจ๊ป ์ฌ์ฉํ์ฌ ์คํฌ๋กค ๋ทฐ๋ฅผ ๋ง๋ญ๋๋ค. ์คํฌ๋กค๋ฐ๋ 0์์ 1 ์ฌ์ด์ Size(ํฌ๊ธฐ) ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ ์ ์ฒด ์คํฌ๋กค๋ฐ ๊ธธ์ด์์ ํธ๋ค(๋๋๊ทธ ๊ฐ๋ฅํ ๋ถ๋ถ)์ด ์ฐจ์งํ๋ ๋น์จ์ ๊ฒฐ์ ํฉ๋๋ค. ์ด ๊ฐ์ ์คํฌ๋กค ๋ทฐ์์ ์ฝํ ์ธ ์ ์ด๋ ์ ๋ ๋น์จ์ด ๋ณด์ด๋์ง๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ๋ค๋ฅธ ์ปดํฌ๋ํธ์์ ์ ์ดํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. Scroll Rect ์ปดํฌ๋ํธ๊ฐ ์ด ์์ ์ ์๋์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
์คํฌ๋กค๋ฐ๋ ์ํ ๋๋ ์์ง ํํ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ํ, ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ์ํํ ์์
์ ์ ์ํ๋ OnValueChanged UnityEvent๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.

Scrollbar ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Scrollbar ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Dropdown์ ์ ํํ ์ ์๋ ์ต์
๋ชฉ๋ก์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ ์ต์
์ ๋ํด ํ
์คํธ ๋ฌธ์์ด๊ณผ ์ ํ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ง์ ํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ธ์คํํฐ์์ ์ค์ ํ๊ฑฐ๋ ์ฝ๋์์ ๋์ ์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค. ํ์ฌ ์ ํ๋ ์ต์
์ด ๋ณ๊ฒฝ๋ ๋ ์ํํ ์์
์ ์ ์ํ๋ OnValueChanged UnityEvent๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.

Dropdown ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Dropdown ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Input Field๋ ํ
์คํธ ์์(Text Element)์ ํ
์คํธ๋ฅผ ์ฌ์ฉ์๊ฐ ํธ์งํ ์ ์๋๋ก ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ
์คํธ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋ ๋ ์ํํ ์์
์ ์ ์ํ๋ UnityEvent์, ์ฌ์ฉ์๊ฐ ํธ์ง์ ๋ง์ณค์ ๋ ์ํํ ์์
์ ์ ์ํ๋ ๋ ๋ค๋ฅธ UnityEvent๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.

Input Field ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Input Field ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Scroll Rect๋ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ๋ ์ฝํ ์ธ ๋ฅผ ์์ ์์ญ์ ํ์ํด์ผ ํ ๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. Scroll Rect๋ ์ด ์ฝํ ์ธ ๋ฅผ ์คํฌ๋กคํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก Scroll Rect๋ Mask์ ๊ฒฐํฉ๋์ด ์คํฌ๋กค ๋ทฐ๋ฅผ ๋ง๋๋๋ฐ, ์ด ์คํฌ๋กค ๋ทฐ์์๋ Scroll Rect ๋ด๋ถ์ ์คํฌ๋กค ๊ฐ๋ฅํ ์ฝํ
์ธ ๋ง ๋ณผ ์ ์์ต๋๋ค. ๋ํ, ์ํ ๋๋ ์์ง์ผ๋ก ์คํฌ๋กคํ๊ธฐ ์ํด ๋๋๊ทธํ ์ ์๋ ํ๋ ๋๋ ๋ ๊ฐ์ Scrollbar์ ์ถ๊ฐ์ ์ผ๋ก ๊ฒฐํฉ๋ ์๋ ์์ต๋๋ค.

Scroll Rect ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Scroll Rect ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.