01 Draw Call & Batches
๐ Draw Call
- CPU๊ฐ GPU์๊ฒ ์ด๋ค ๊ทธ๋ฆผ์ ๊ทธ๋ ค ๋ฌ๋ผ๊ณ ์์ฒญํ๋ ๊ฒ
- Draw Call ๊ฐ์ด ์ ์์๋ก ๊ฒ์์ด ๊ฐ๋ฒผ์ฐ๋ฉฐ, ๊ธฐ๊ธฐ์ ๋ฐ๋ผ ํน์ ๊ฐ์๋ฅผ ๋๊ธฐ๋ฉด ํ๋ ์ ์ ํ ํ์์ ์ผ์ผํฌ ์ ์๋ค
- ๋ชจ๋ฐ์ผ์ ๊ฒฝ์ฐ 100์ ๋๊ธฐ์ง ์๋ ๊ฒ์ ๊ถ์ฅํ๋ค
๐ Batches
- Draw Call์ ํฌํจํ๋ ์์ ๊ฐ๋ ์ผ๋ก Unity 5.0๋ถํฐ Draw Call ๋์ Batches๋ฅผ ๊ธฐ์ค์ผ๋ก "Stats"์ ๋ ๋๋ง ์ ๋ณด๋ฅผ ํํํ๋ค
- Batches๋ Mesh, Material, Shader, Draw Call ๋ฑ์ ์ ๋ณด๋ฅผ ์ข ํฉ์ ์ผ๋ก ๊ณ์ฐํ๋ค
๐ Sprite Atlas
- ์ฌ๋ฌ ์ฅ์ Sprite ์ด๋ฏธ์ง๋ฅผ ํ ์ฅ์ ํ ์ค์ฒ์ ๋ชจ์ ๋๊ณ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก Unity๋ Sprite Packer(Legacy)์ Sprite Atlas๋ฅผ ์ ๊ณตํ๋ค
- Sprite Atlas ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์
- 2D ๊ฒ์์์ ๋ฐฐ๊ฒฝ์ด๋ ์บ๋ฆญํฐ, ์ ๋ฑ์ ํํํ๋๋ฐ ์ฌ์ฉ๋๋ Sprite ๋ ๋งค๋ฒ ๋ ๋๋ง ํ ๋๋ง๋ค ๊ฐ Sprite ๋ณ๋ก 1์ Batches๊ฐ ๋ฐ์๋๋ค
- ์๋ฅผ ๋ค์ด ๊ฒ์์ ์ฌ์ฉ๋๋ ์บ๋ฆญํฐ, ์ , ์์ดํ ๋ฑ ๋ชจ๋ ๋ค๋ฅธ Sprite๋ฅผ ์ฌ์ฉํ๋ ์ค๋ธ์ ํธ๊ฐ 100๊ฐ ์๊ณ , ๋์์ ๊ฒ์์ ๋ฑ์ฅํ๋ค๋ฉด Batches ๋ 100์ด๋ค
- ํ์ง๋ง ๋์ผํ Sprite๋ฅผ ์ฌ์ฉํ๋ ์ค๋ธ์ ํธ๊ฐ 100๊ฐ ์ผ ๊ฒฝ์ฐ์๋ Batches๊ฐ 1์ด๋ค
- Sprite Atlas๋ฅผ ์ฌ์ฉํด ์๋ก ๋ค๋ฅธ Sprite๋ฅผ ํ๋์ ํ ์ค์ฒ์ ๋ชจ์ ๋๊ณ ์ฌ์ฉํ๋ฉด ์๋ก ๋ค๋ฅธ Sprite์ ์ค๋ธ์ ํธ๋ฅผ 100๊ฐ ๋ง๋ ๋ค๊ณ ํด๋ Batches ๊ฐ 1์ผ ๊ฒ์ด๋ค
์ฒ์ Batches์ ๊ฐ์ 0์์ ํ์ธํ ์ ์๋ค.
์๋ก์ด ์ค๋ธ์ ํธ๋ฅผ ์ถ๊ฐํ์, Batches์ ๊ฐ์ด 1๋ก ๋ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ํ๋์ ์ค๋ธ์ ํธ๋ฅผ ๋ ์ถ๊ฐํ์, Batches์ ๊ฐ์ด 2๊ฐ ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ค๋ธ์ ํธ๋ค์ ๋ณต์ ํ์ฌ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ, ๊ฒ์ ์ค๋ธ์ ํธ์ ๊ฐ์๋ ๋์ด๋ฌ์ง๋ง, ์ฌ์ฉ๋ Sprite๋ 2๊ฐ์ด๊ธฐ ๋๋ฌธ์ Batches๋ ์ฌ์ ํ 2๊ฐ๋ก ์ค์ ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋จ์ ์ด๋ฏธ์ง๋ค์ ๋ชจ๋ ์ค๋ธ์ ํธ๋ก ์ถ๊ฐํ ๊ฒฐ๊ณผ, ์ด 13๊ฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ Batches์ ๊ฐ์ด 13์์ ํ์ธํ ์ ์๋ค.
02 Sprite Atlas
์ด Batches ์ ๊ฐ์ Sprite Atlas๋ฅผ ์ด์ฉํ์ฌ ์กฐ์ ํด๋ณด์.
ํ๋ก์ ํธ ๋ทฐ์ + ๋ฒํผ์ ๋๋ฌ Sprite Atlas๋ฅผ ์์ฑํด์ค๋ค.
์์ฑ ์ดํ, ์ถ๊ฐ์ ์ธ ์ค์ ์ ์์, Object for Packing ๋ฆฌ์คํธ์ ์ฐ๋ฆฌ๊ฐ Atlas๋ก ๋ฌถ์ ์ด๋ฏธ์ง๋ค์ ๋ฑ๋กํด์ค ์ ์๋ค. ์ด๋, ํ๋์ฉ ๋ฃ์ด์ฃผ๋ ๋ฐฉ๋ฒ์ด ์๊ณ , Atlas์ Inspector ๋ทฐ ์ฐ์ธก ์๋จ์ ์๋ฌผ์ ๋ชจ์์ ๊ฑธ์ด๋ ํ ํ๋ก์ ํธ ๋ทฐ์ ์๋ ์ด๋ฏธ์ง๋ค์ ๋ชจ๋ ์ ํํ์ฌ ํ๋ฒ์ ๋ฃ์ด์ค ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค.
๋ชจ๋ ๋ฃ์๋ค๋ฉด Pack Preview ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ค์ ์ ์๋ฃํด์ค ์ ์๊ณ , ์๋ ํ๋จ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ํ๋์ Sprite Atlas์ ์ด๋ฏธ์ง๋ค์ด ๋ฌถ์ฌ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ดํ ๊ฒ์์ ์คํํด๋ณด๋ฉด, Batches์ ์ ๋ณด ๊ฐ์ด Atlas ๊ธฐ์ค์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. Atlas๋ ์ฝ๋์ ์ํด ์คํ์ด ๋๊ธฐ ๋๋ฌธ์ ๊ฒ์์ ์คํํ๊ธฐ ์ ์๋ ํ์ธํ ์ ์๋ค.
๐ Sprite Atlas ์ฌ์ฉ ์ ์ฃผ์ํ ์
1) ์ฐ๋ฆฌ ๊ฒ์์ ์๋ ๋ชจ๋ ์ด๋ฏธ์ง ์์ ์ ํ๋์ Sprite Atlas๋ก ๋ฌถ๋๊ฒ ์ข์๊น?
→ ํ๋์ Sprite Atlas๋ก ๋ฌถ์ผ๋ฉด ์ด๋ฏธ์ง๋ฅผ ์๋ฌด๋ฆฌ ๋ง์ด ์ฌ์ฉํด๋ Batches์ ๊ฐ์ด 1์ด๋ค
2) Sprite Atlas ๋จ์๋ก ๋ฌถ์ฌ ์์ ๋ Atlas ๋ด๋ถ์ ์ด๋ฏธ์ง ํ๋๋ง ์ฌ์ฉํด๋ ํด๋น Sprite Atlas ๋ด๋ถ์ ๋ชจ๋ ์ด๋ฏธ์ง ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋๋ค.
3) ํ ํ๋ฉด์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒ ํน์ ํ๋์ ์ค๋ธ์ ํธ์ ์ฌ์ฉ๋๋ ๊ฒ๊ณผ ๊ฐ์ด ๊ด๋ จ์ด ์๋ ์ด๋ฏธ์ง๋ค์ ํ๋์ Sprite Atlas๋ก ๋ฌถ์ด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
03 Texture Asset
Texture Asset์ Inspector View์ ๋ค์ํ ์ ๋ณด๊ฐ ์ถ๋ ฅ๋๋ค.
โ Texture Type : ํ ์ค์ฒ๋ฅผ ์ด๋ค ์ฉ๋๋ก ์ฌ์ฉํ ์ง์ ๋ฐ๋ผ ์ค์ ํ๋ ๊ฒ
- Sprite (2D and UI) : 2D Sprite ์ค๋ธ์ ํธ๋ UI์ ํ ์ค์ฒ๋ฅผ ์ ์ฉํ ๋ ์ค์
- default : ์ผ๋ฐ์ ์ธ 3D ์ค๋ธ์ ํธ์ material์ ์ ์ฉํ ๋ ์ค์
โ Sprite Mode
- Single : ๋จ์ผ ์ด๋ฏธ์ง ์ ์ฒด๋ฅผ ์ฌ์ฉ
- Multi : ๊ฐ๋ฐ์๊ฐ ์ํ๋ ํํ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ถํ ํด์ ์ฌ์ฉ (์๋ณธ๋ ์ฌ์ฉ ๊ฐ๋ฅ)
- Polygon : ์ฐ๋ฆฌ๊ฐ ์ธ๋ถ์์ ๊ฐ์ ธ์จ ์ด๋ฏธ์ง์ ์ค์ ํ์ง ์์
โ Pixels Per Unit : ๋ช ํฝ์ ์ Unity Scale 1๋ก ์ค์ ํ ๊ฒ์ธ๊ฐ๋ฅผ ๋ปํ๋ค.
โ Pivot : ํ ์ค์ณ์ ์ค์ฌ ์ถ
Sprite Editor ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์๋์ ๊ฐ์ด Sprite๋ฅผ ํธ์งํ ์ ์๋ ๋ทฐ๊ฐ ๋์จ๋ค.
[ Sprite Editor ]
- Sprite Mode(Single, Multiple, Polygon)์ ๋ฐ๋ผ ์ต์ ์ด ๋ฌ๋ผ์ง๋ค.
- Sprite์ ์์น, ํฌ๊ธฐ, ๊ฒฝ๊ณ, ์ค์ฌ์ ํธ์ง ๊ฐ๋ฅ
- Sprite๋ฅผ ๋ถํ ํ๊ฑฐ๋ ํด๋ฆฌ๊ณค ์ ๊ฐ์๋ฅผ ์์ ํ๋ ๋ฑ์ ํธ์ง์ด ๊ฐ๋ฅ
Sprite ๋ชจ๋๊ฐ Multiple์ผ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๋ฅผ ๋ถํ ํ ์ ์๋ค. ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ ๋ถ๊ท์นํ ํํ๋ก ๋ถํ ํ ๊ฒฝ์ฐ ๋น ๊ณณ์ ๋๋๊ทธํด์ ์๋ก์ด ๊ณณ์ ์์ฑํ ์ ์๊ณ ,
์ผ์ ํ ๊ท์น์ผ๋ก ๋ถํ ํ ๊ฒฝ์ฐ, ์ฌ๋ผ์ด์ค ๋ฉ๋ด๋ฅผ ํ์ฉํ ์ ์๋ค.
[ ๋ถํ ํ์ ]
- Automatic : ํ ์ค์ณ๋ฅผ ์๋์ผ๋ก ๋ถํ
- Grid By Cell Size : ์ฐ๋ฆฌ๊ฐ ์ค์ ํ๋ ์ ์ ํฌ๊ธฐ๋งํผ์ผ๋ก ๋ถํ
- Grid By Cell Count : ๊ฐ๋ก, ์ธ๋ก ๊ฐ์๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ ๊ทธ ๊ฐ์ ๋งํผ ์๋๋ถํ
๐ ์ด๋ฏธ์ง ๋ถํ ๊ณผ POT(Power of Two) ๊ท๊ฒฉ
โถ ํ๋์ ์ด๋ฏธ์ง ์์ ์ ์ฌ๋ฌ ์ฅ์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๊ณ ๋ถํ ํ์ฌ ์ฌ์ฉํ๋ ์ด์ ๋?
- ๊ฒ์์์ ์ฌ์ฉ๋๋ ํ ์ค์ฒ๋ฅผ ์ ์ํ ๋๋ POT ๊ท๊ฒฉ์ผ๋ก ์ ์ํด์ผ ํ๋ค
→ POT(Power of Two) : ํ ์ค์ฒ์ ๊ฐ๋ก ์ธ๋ก ์ฌ์ด์ฆ๊ฐ 2์ ์ ๊ณฑ
- POT ๊ท๊ฒฉ์ด ์๋ ํ ์ค์ฒ๋ POT ๊ท๊ฒฉ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ๋ด๋ถ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฑฐ์น๊ฒ ๋๊ณ ์ด๋ก ์ธํ ๋ฉ๋ชจ๋ฆฌ ๋น์ฉ์ด ์ฆ๊ฐํ๋ค
- ๋ณดํต ๊ฒ์์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง๋ POT ๊ท๊ฒฉ์ผ๋ก ์ ์๋ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋์ POT ๊ท๊ฒฉ ํ ์ค์ฒ์ ์ฌ๋ฌ ์ฅ์ ์ด๋ฏธ์ง(๋ณดํต ๊ฐ์ ์ฑ๊ฒฉ์ ๊ฐ์ง)๋ฅผ ๋ฃ์ด์ ์ ์ํ๋ค
์๋ฅผ ๋ค์ด, 31*31 ํฝ์ ์ฌ์ด์ฆ์ ์ด๋ฏธ์ง๋ 32*32 ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ค. ๋ฐ๋ฉด, 33*33 ํฝ์ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ 32*32 ๋ฉ๋ชจ๋ฆฌ์ ๋ด๊ธฐ์ 1์ด ๋ถ์กฑํ๋ฏ๋ก 64*64 ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ฒ ๋๊ณ , ๋จ๋ ๊ณต๊ฐ์ ๋ฒ๋ ค์ง๊ฒ ๋๋ค.
04 Polygon Sprites
Polygon Sprites๋ 2์ฐจ์ ๋ํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ฉ๋ด๋ก Project View์์ ํ๋ฌ์ค ๋ฒํผ์ ๋๋ฌ ์ถ๊ฐํ ์ ์๋ค.Square ์คํ๋ผ์ดํธ๋ฅผ ํ๋ ์ถ๊ฐํ ํ, Sprite Mode๊ฐ Polygon์ธ์ง ํ์ธํ๊ณ Sprite Editor ๋ฉ๋ด๋ก ๋ค์ด๊ฐ๋ณด๋ฉด Change Shape ๋ฉ๋ด์ Sides ๋ณ์๋ฅผ ๋ณผ ์ ์์ผ๋ฉฐ, ์ด Sides ๋ณ์ ๊ฐ์ ๋ฐ๋ผ ๋ํ์ ๋ชจ์์ด ๋ฐ๋๊ฒ ๋๋ค.
๐ Sides
: ๋ํ์ ๊ผญ์ง์ ๊ฐ์ (3~128๊ฐ๊น์ง ์ค์ ๊ฐ๋ฅ)
โถ Sides๋ฅผ 128๊ฐ๋ก ์ค์ ํ์ ๋๊ฐ ์(Circle)
๋ค๋ฅธ ์คํ๋ผ์ดํธ๋ค๋ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํ ์ ์๋ค.
05 Sprite Animation
์ข ๋ ์ญ๋๊ฐ์๋ ๊ฒ์์ ์ํด์๋ ํ ์ฅ์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ์๋ ๋์์ ๋ง์ถฐ ์ด๋ฏธ์ง๊ฐ ๋ณํํด์ผ ํ๋ค. ์ด๋ฅผ Sprite Animation์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ์ด๋ Sprite Renderer ์ปดํฌ๋ํธ์ ์ด๋ฏธ์ง๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ต์ฒดํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
โ 2D Sprite Animation
โถ Animation Asset
- ํ๋์ ์ ๋๋ฉ์ด์ ๋์์ ์ ์ฅํ๋ ํ์ผ ("๊ฑท๊ธฐ”, "๋ฐ๊ธฐ“, "๊ณต๊ฒฉ" ๋ฑ)
- ํ์ผ ์์ฑ ๋ฐฉ๋ฒ : Project View - “+” - Animation
โถ Animation View
- Animation Asset์ ํ๋์ ์ ๋๋ฉ์ด์ ์ผ๋ก ๊ตฌ์ฑ๋๋ ํ ์ค์ฒ๋ฅผ ๋ฑ๋กํ๋ View
โถ Animator Controller Asset
- ํ๋์ ์ค๋ธ์ ํธ๊ฐ ๊ฐ์ง ์ ์๋ ์ ๋๋ฉ์ด์
์ ๋ฌถ์ด์ ๊ด๋ฆฌํ๋ ํ์ผ
- ํ์ผ ์์ฑ ๋ฐฉ๋ฒ : Project View - “+” - Animator Controller
โถ Animator View
- Animator Controller Asset์ ์ ๋๋ฉ์ด์ ์ ๋ฑ๋กํ๋ View
โถ Animator Component
- ๊ฒ์ ์ค๋ธ์ ํธ์ ์ ๋๋ฉ์ด์ ์ฌ์, ๊ต์ฒด ๋ฑ์ ์ ์ดํ๋ ์ญํ ์ ์ํํ๋ค.
์ถ์ฒ : ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ ๊ณ ๋ฐ์ฌ์ ์ ๋ํฐ ๊ธฐ์ด(https://inf.run/sgcy)
'Study > Unity' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Unity 2D Basic] 2D Tilemap Editor (0) | 2024.05.08 |
---|---|
[Unity 2D Basic] 2D Animation ์ค์ต (0) | 2024.05.01 |
[Unity 2D Basic] ํ๋ซํผ ๊ฒ์์์์ ํ๋ ์ด์ด ์ด๋, ์ ํ ๊ตฌํ (0) | 2024.05.01 |
[Unity 2D Basic] ๊ฒ์์ค๋ธ์ ํธ ์ญ์ ํจ์ (0) | 2024.04.16 |
[Unity 2D Basic] Instantiate() ํ์ฉ ์์ (0) | 2024.04.16 |