์๋ฌด๋ฆฌ ๊ฐ๋จํ ๊ฒ์์ด๋ผ๋ Only Pure Unity Engine ๋ง ์ฌ์ฉํด์ ๊ฐ๋ฐํ๋ ์ฌ๋์ ์์ ๊ฒ์ด๋ค.
๊ฐ๋ฐ ํธ์๋ฅผ ๋์์ฃผ๋ ์ฌ๋ฌ ๋๊ตฌ๋ค์ด ํ์ํ ๋๊ฐ ์๊ณ (์๋๋ฉด ํผ์ ์ด ๋ชจ๋ ๊ฑธ ๋ค ๋ง๋ค์ด์ผ ํ๋๋ฐ ์ํ๊น๊ฒ๋ ์ฐ๋ฆฌ์ ์ธ์์ ์งง๊ณ ํ ์ผ์ ๋ง์), ๋คํํ๋ Unity๋ ์ด๋ฌํ ์ธ๋ถ ๋๊ตฌ๋ค์ ์ค์นํ ์ ์๊ฒ ํด์ฃผ๋ ์์ ํ๋ฌ๊ทธ์ธ์ด ์์.
๊ฑฐ๊ธฐ๋ค๊ฐ Unity๋ C# ๊ณผ Dotnet์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋ฒ์ ๋ง ๋ง์ผ๋ฉด ๊ฐ์ข
C# ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉ ๊ฐ๋ฅํจ.
๊ทธ๋์ https://gall.dcinside.com/m/game_dev/118700
๋๋ค ์ ๋ํฐ ์ด๋ณด์ธ๋ฐ ํ์์์ ์ข ์๋ ค์ค์ Dotween ๊ฐ์๊ฑฐ์ฅ๋ฅด๋ 2D ๋ง๋ค๋ ค๊ณ ํ๊ตฌ์. ๊ฐ๋ฐ๋ ฅ ์ฌ๋ ค์ฃผ๋ ์ฐ์ถ์ฒ ์์ ๋ค ์ข ์๋ ค์ฃผ์ธ์~์ง๊ธ Dotween ๋ฐ์ ๋ชฐ๋ผ์. ์ด๊ฑฐ ์กด๋ ํธํ๋๋ฐ...์ ๋ํฐ ๊ฐ๋ฐ์๋ค์ด ์ค์นํด์ผํ๋ ํ์ ์์ ๋ชจ์ ๊ฐ์๊ฑฐ ์๋์?๊ทธ ๊ตญ๋กค๊ฐ์๊ฑฐ์.gall.dcinside.com์ ๋ฌ๋ฆฐ ๋๊ธ์ ํ ๋๋ก ๋ด๊ฐ ์ข ๋ ์กฐ์ฌํ ๋ด์ฉ๋ค๊ณผ ์ทจํฉํด์ ๋ด๊ฐ ์ธ ๊ธฐ์ ๋ค ์ ๋ฆฌ ํด๋ดค์.
์ ๋ณ ๊ธฐ์ค
- ์ฐ์ ์์๋ ๋ฌด๋ฃ
- ๋ด๊ฐ ์ธ ๊ฒ(2D๊ฒ์ ํ๋ก์ ํธ). ๋น์ฅ ํ์ํ์ง ์์ ์์ ๋ค์ ๋บ์
- ๋ฌธ์ํ ์ ๋ ๊ฒ
- ์ง์์ ์ธ ์ ๋ฐ์ดํธ ๊ด๋ฆฌ(=์ ์)
- ๋์ค์ ์ธ ๊ฒ(=๋ฐ๋ด or ๋ณ ๋ง์ ๊ฒ)
๊ทธ๋ฆฌ๊ณ Asset Store์ ์๋ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ฐ๋ก Libraries ๋ฉ๋ด์ ์์ฑํจ.
Assets *[์ ]: ์ ๋ฃ, [์ ๋ฌด]: ์ ๋ฃ, ๋ฌด๋ฃ ๋ ๋ค ์กด์ฌ
- Dotween - ์ ๋๋ฉ์ด์ ์์ง(i.e. ๋์ ์ ์ด ์์ง)[์ ๋ฌด]
- Log Viewer - ์๋ํฐ ์ฝ์ ๋ก๊ทธ๋ฑ์ ๊ฒ์ ํ๋ฉด์์๋ ๋ณผ ์ ์๋ ์์
- Auto Letterbox - ๋์คํ๋ ์ด ํด์๋์ ๋ง๊ฒ ๋ ํฐ๋ฐ์ค๋ฅผ ์๋์ผ๋ก ์ ํ ํด์ฃผ๋ ์์
- Epic Toon FX - ๋ค์ํ ํํฐํด ์ดํํธ๋ค ๋ชจ์[์ ]
- All In 1 Sprite Shader - 2D์ฉ ์์ด๋ ๋ชจ์
- Unity Google Sheets - ๊ตฌ๊ธ ์คํ๋ ๋์ํธ์ ์ ๋ํฐ ์ฐ๋ ํด(https://gall.dcinside.com/m/game_dev/118540)
- Easy Save - ๊ฒ์ ์ธ์ด๋ธ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ฅ๊ณผ ์ง๋ ฌํ ์ง์ ์์คํ [์ ]
- Reflexย Usyrup - DI framework
- Game Package manager - NHN์์ ์ ์ํ ๊ฒ์ ๊ฐ๋ฐ์ ๋์์ฃผ๋ ๋ค์ํ ํด ๋ชจ์(UI, Shader, Log viewer๋ฑ์ด ์์ผ๋ฉฐ ์์ ๋์ดํ ์์ ๊ณผ ๊ฒน์น๋ ๋ถ๋ถ๋ ์์)
- Gamebase Setting Tool - ์ญ์ NHN์์ ์ ์ํ ๋ก๊ทธ์ธ, ๊ฒฐ์ , ํต๊ณ์์ง ๋ฑ ๊ฒ์ ์ธ์ ์ธ ๋ถ๋ถ์ ์ง์ํด์ฃผ๋ ํด(Auth ์ง์ ํ๋ซํผ์์ ์นด์นด์คํก๋ง ์์ ใ )
- Fog of war - ์ ์ฅ์ ์๊ฐ๋ฅผ ์ถ๊ฐ + ์ฒญํฌ ๋งค๋์ (Legacy, URP, PPV ์ง์)
Libraries
- LogicBlocksย Unimob - State management๋ฅผ ์ํ Reactive programming library
- language-ext - FP library
- Unity ECS or Entitias-Redux or Svelto.ECS
- ECS ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ด๋ค ๊ฒ์ด๊ฐ LeoECS๋ฅผ ์ด์ฉํด์ ๊ฒ์ ๊ฐ๋ฐ ํ๊ณ ์๋๋ฐ ์ด๊ฒ Doc์ด ๋ค ๋ฌ์์์ด๋ผ ํจ์ค. ์์ง ์ข ๋ R&D ํด๋ณด๊ณ ๊ฒฐ์ .(ECS ์์ฒด๊ฐ ๋ญ์ก๋๋ฐ ์์ก๋ ์นผ ์ฐ๋ ๊ฒฉ์ผ ์๋ ์์ด์ ๊ณ ๋ฏผ ์ข ํด๋ด์ผ ํจ)
- ๊ฒ์ ๋ก์ง๋ณด๋ค๋ ๋ ๋๋ง๊ด๋ จ ์ํฐํฐ๋ค์ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉํ ๊ฒ ๊ฐ์.
- ECS ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ด๋ค ๊ฒ์ด๊ฐ LeoECS๋ฅผ ์ด์ฉํด์ ๊ฒ์ ๊ฐ๋ฐ ํ๊ณ ์๋๋ฐ ์ด๊ฒ Doc์ด ๋ค ๋ฌ์์์ด๋ผ ํจ์ค. ์์ง ์ข ๋ R&D ํด๋ณด๊ณ ๊ฒฐ์ .(ECS ์์ฒด๊ฐ ๋ญ์ก๋๋ฐ ์์ก๋ ์นผ ์ฐ๋ ๊ฒฉ์ผ ์๋ ์์ด์ ๊ณ ๋ฏผ ์ข ํด๋ด์ผ ํจ)
- URP 2D ๊ด๋ จ
- How to Make Amazing Lights For Your Tilemap with URP 2D - ์ด ๋ถ ๋๋ฌด ๋ง์์ ๋ฌ ใ ใ
- New Build Configs - ์๋ก์ด ๋น๋ ๊ตฌ์ฑ ๊ธฐ๋ฅ. ์ด์ ๋ค์ํ ๋น๋ ์ค์ ์ ๊ธฐ๋ฅ๋ณ๋ก ์ ์ฅ ๋ฐ ๋ก๋ ํ ์ ์์.
์ ์ฉํ ์์ ๋ค
- UnmaskForUGUI - ๋ง ๊ทธ๋๋ก ํ๋ฉด์ ๋ง์คํฌ ํ๊ฑฐ๋ ์ญ๋ง์คํฌ๋ฅผ ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์์ (๋ฐ๋ชจ)
- OpenUPM - https://gall.dcinside.com/m/game_dev/119305 <- ์์ธํ๊ฑด ์ด ๊ฒ์ด ๊ธ ์ฐธ์กฐ
- UI Assets - https://gall.dcinside.com/m/game_dev/118596 <- ์์ธํ๊ฑด ์ด ๊ฒ์ด ๊ธ ์ฐธ์กฐ
- ParticleEffectForUGUI - UI์ ํํฐํด ๋ฐ ์ดํํธ๋ฅผ ์
ํ ์ ์๋ ์คํ์์ค ์์
unitask ๋ unirx ๋ ์ด๋ฐ
unitask๋ ๋น๋๊ธฐ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์? ์ด๋ฏธ ์ฝ๋ฃจํด๊ณผ job์ ์ธ ๊บผ๋ผ ์์ง์ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
https://blog.logrocket.com/performance-unity-async-await-tasks-coroutines-c-job-system-burst-compiler/
์ฌ๊ธฐ ๋ณด๋ฉด ์ผ๋จ async/await์ ๋ํด ๊ทธ๋ฆฌ ์ถ์ฒํ์ง ์์.
๊ทธ๋ฆฌ๊ณ unirx๋ ์ ๋ฐ์ดํธ๊ฐ ๊ฝค ์ค๋ ๋์๊ณ ๋ค๋ฅธ rx ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ง์ด ๋์์ ๊ฑฐ๊ธฐ์ ๊ณ์ ์ ์ง๋ณด์ ์ค์ธ๊ฒ Unimob์ด๋ผ ๊ทธ๊ฑฐ ๊ณจ๋ผ๋ด. ์์ง ๊ทธ๊ฑธ๋ก ์ค์ ๊ฐ๋ฐ ์ํด๋ด์ ํธ์์ฑ์ด๋ผ๋์ง ์ด๋ฐ๊ฑด ๋ชจ๋ฅด๊ฒ ๋ค.
์ฌ์๋ ๊น์ง ์คํ์์ค ์กฐ๊ธ ์ฐ๋๊ฑฐ ์ธ์ ์์ ์ ์์ผ๋๋ฐ.. ์์ฆ์ ๊ท์ฐฎ์์ ๊ทธ๋ฅ ์์ ์
์ ๋ํฐ์์ DI ์ ์ฉํ ๋งํจ? Vcontainer๊ฐ์๊ฑฐ ์ข ํ์ด๋ณด๊ธดํ๋๋ฐ, ๋ณธ๊ฒฉ์ ์ผ๋ก๋ ์์จ๋ด์ ๊ทธ๋ฐ๊ฐ ์์ง ๋ฑ ์๋ฟ์ง ์๋๋ผ๊ณ .
๋ค๋ฅธ๊ฑด ๋ชจ๋ฅด๊ฒ ๊ณ DI ์์ฒด๋ ์ฐ๋ฉด ์๋ฌด๋๋ ํธํ์ง ์์๊น? ์ต์ํ ๊ท์ฐฎ์ boilerplate code ๋ค์ ์ค์ผ ์๋ ์์์.
๋ด๊ฐ DI์ ๋ํด์ ์์ง ๊ณต๋ถ๊ฐ ๋ถ์กฑํด์ ๊ฐ์ ์ข ๋ชป์ก๋๊ฑฐ๊ฐ์. ์์ง ์ด๋ป๊ฒ ์ฐ๋ฉด ์ข๊ฒ ๋ค!ํ๊ณ ๊ฐ์ด ์์ง ์์ค๋๋ผ๊ณ . ๋์ค์ ์กฐ๊ธ ๋ ๊ณต๋ถํ๊ณ ์ฃฝ์ด๋๋ ๋ฐฅ์ด๋๋ ์จ๋ณด๋ฉด์ ์ต์ํด์ ธ๋ด์ผ๊ฒ ์.