ํด๋นํ๋ ํ๋ค์ ์ ๋ถ ์ ์ฃผ๊ด / ๊ฒฝํ ํ์ ์ด๋ฃจ์ด์ง ํ๋ค์.ย
์ฝ๋๊ฑด ์์ ์ง๋ง ๋ฐ๋ฐ์ ๊ฑฐ์ ํ๋ค ๊บผ์ ธ๋ผ
์ง๋ฌธ์ ์กด๋ ์ฌ๋ํ๋ค
C++ํ / ๊ทธ๋ฅ ํ
C++ ํ
1. Hot Reload ์จ๋ ๋ ๋์ ์ ์จ์ผ ํ ๋ (์จ์ผ ํ ๋๊ฐ ์จ๋ ๋ ๋์.)
- ์จ๋ ๋ ๋ย
ํจ์ ์๋ ๋ฐฉ์ {} ๊ดํธ ์ฌ์ด ์๋๋ฐฉ์ ๋ณ๊ฒฝย
๋ฑํ ๋ฌธ์ ๋๋ ํ์๋ ์๋๊บผ๋ผ๊ณ ์๊ฐํจ
- ์ฐ๋ฉด ์๋ ๋
ํน์ ํด๋์ค์ ๋ณ์๋ฅผ ๋ณ๊ฒฝ / ์์ / ์ถ๊ฐ / ์ญ์ ํ์๊ฒฝ์ฐ / ํจ์๋ฅผ ์ถ๊ฐ / ๋ณ๊ฒฝ ํ์๊ฒฝ์ฐ. (UPROPERTY / UFUNCTION / UENUM / USTRUCT)
(์ด์ : Hot Reload๋ก ๋ณ์๊ฐ ์ถ๊ฐ ๋ณ๊ฒฝ ์ญ์ ๋ฑ๋ฑ.. ์ด๋ฃจ์ด ์ก์ ๊ฒฝ์ฐ ๋ณ์์ HotReload๋ผ๋ ํ๊ทธ๊ฐ ๋ถ์ฌ์ ธ์ ๋์ค๋๋ฐ ์ด๊ฑธ ๊ทธ๋๋ก ๋ฐฉ์นํด์ ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ํด๋น ๋ณ์๋ก ์์ ์ ํ๊ฒ๋๋ฉด ๋ค์ ๋น๋๋ ์ ๋๋ก ์ฐ๋์ด ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์.
๊ทธ๋ฆฌ๊ณ ๊ฐ๋ Details ํจ๋์ ์ ๋ณด๊ฐ ์์ ์๋ณด์ด๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ HotReload๋ฅผ ๋ง ์ฐ๋ฉด ๊ฐ๋๊ทธ๋ผ ์ด๊ฑฐ ์์ ํ๋ ค๋ฉด ๋ธ๋ฃจํ๋ฆฐํธ ๋ค์ ๋ง๋ค๊ฑฐ๋ ๋ค๋ฅธ ๋ถ๋ชจ ํด๋์ค๋ก ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋ค์ ๋์์ค๋ฉด ํด๊ฒฐ๋๋๋ฐ ๊ท์ฐฎ์)
- ํน์ ํด๋์ค๋ฅผ ์ถ๊ฐํ์ ๊ฒฝ์ฐ.
๊ทธ๋ฅ ๊ป๋คํค์..
Hot Reload ๋ฒ๊ทธ๋ ์ง์ ๊ฒช์ด๋ณด์ ๊ฑฐ์ง๊ฐ์
๋ค๋ฅธ ๊ฒฝ์ฐ๋ค๋ ์๋๋ฐ ์๊ฐ์ด ์๋จ. ๊ทธ๋ฅ C++ ์ฝ๋ ๋ณ๊ฒฝํ์ผ๋ฉด ์ ๋งํ๋ฉด ๊ป๋คํค๋๊ฒ ์ข์๋ฐ ๊ท์ฐฎ์์? ๊ทธ๋ฅ ํด๋ณด๋ฉด์ ๋๊ปด๋ณด์
(??? : ๋ ์ปดํจํฐ ๊ฐ๋๋ ค์ ๊ท์ฐฎ์๋ฐ?) -> ์ด๊ฑด ๊ถ๊ณ ์ฌํญ์ด์ง ์ง์ ๋ถ๋ชํ๋ฉด์ย ๋ฒ๊ทธ๋ฅผ ์จ๋ชธ์ผ๋ก ๋๋ผ์
2. Rider ์จ๋ผ
๊ทธ๋ฅ ์ข ์จ๋ผย
๋ณธ์ธ VSCode Visual Studio Sublime Text ๋ฑ๋ฑ ๋ค ์จ๋ดค๋๋ฐ Rider ๋งํผ ์ข์๊ฒ ์๋ค
์ฅ์ :ย
1. ์ถ๊ฐ๋์ง ์์ ํค๋ํ์ผ์ ๋ชจ๋๋จ์๊น์ง ๊ฒ์ํด์ ์ถ๊ฐํด์ค๋ค
์๋ฅผ ๋ค์ด A ๋ชจ๋์ Example.h ๋ฅผ ๋ถ๋ฌ์ค๋ ค๊ณ ํ์ง๋ง๊ณ ๊ทธ๋ฅ ํด๋น ํ์ผ์ ํด๋์ค๋ฅผ ์ฝ๋์์ ์์ฑํ๋ ค๊ณ ํ๋ ์๊ฐ!
Rider๊ฐ : '๋ ์ด๊ฑฐ ์ถ๊ฐ ์ํ์ด ๋ณ์ ์' ํ๋ฉด์ ์ถ๊ฐํ๋ผ๊ณ ํด์ค (Quick Action ํค ๋ฐ์ธ๋ฉ ํ์ ํธํ๋ค) (๊ทผ๋ฐ Quick Action์ด ๋ง๋ ๋ชฐ๋ผ)
์ด ๊ธฐ๋ฅ ์์ผ๋ฉด ๊ดํ ๊ฒ์ ์กด๋๊ฒํด์ผํ๋ค ๊ท์ฐฎ๋ค
2. UPROPERTY UFUNCTION UENUM USTRUCT ๋งคํฌ๋ก ๊ฐ์๋จ ใ ใ
3. ์ฝ๋ Snippet ๊ฐ์๋จ
๋ง์ฝ์ ๋ด๊ฐ ํน์ ๋ชจ๋์ ๋ด ์ฝ๋์ ์ถ๊ฐํด์ฃผ๊ณ ์ถ๋ค?
๊ทธ๋ฌ๋ฉด ๋ชจ๋ ์ฝ๋๋ฅผ ๋ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํ๊ณ Public Private ํด๋ ์์ฑํ๊ณ ย
๋ชจ๋.h ๋ชจ๋.cpp ์ถ๊ฐํ๊ณ Implementmodule ๋ธ๋ผ ๋ธ๋ผ ๋๋ฌ๋ธ ์ง ๋ง์ดํด์ผํ๋๋ฐ
๊ทธ๋ฅ ๋ธ๊น ํ๋ฉด ๋ง๋ค์ด์ง
4. C++ ํจ์ / ํด๋์ค ๋ฅผ ์ฌ์ฉํ๋ ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ์ฐธ์กฐ๊ฐ๋ฅํจ!
Aํด๋์ค๋ฅผ Derived ๋ฐ์ BP_A ํด๋์ค๋ฅผ Rider ์์์ ์ฐธ์กฐ๊ฐ๊ฐ๋ฅํจ (๊ถ๊ธํ๋ฉด ์จ๋ณด์ ์ค๋ช ํ๊ธฐ ๊ท์ฐฎ์)
Aํด๋์ค์ BlueprintCallable / NativeEvent / ImplementableEvent ๋ฑ๋ฑ.. ์ ์ฐธ์กฐ๊ฐ๋ฅํจ
Rider์์ ํด๋นํจ์ ์ค๋ฅธ์ชฝ์ ์๋ ๋ฉ๋ด๋ฅผ ๋ธ๊น ํ๋ฉด ๋ธ๋ฃจํ๋ฆฐํธ๊ฐ ์ด๋ฆผ ๋ ์ ๋~
๋จ์ :ย
์์ด ๊ฑ ์จ ใ
ํ ์คํธ ์๋ํฐ ๊ณต๋ถํ๊ธฐ ๊ท์ฐฎ๋ค๊ณ ?
ํ ์คํธย ์๋ํฐ ๊ณต๋ถ๋ ์์ฐ๋ ฅ์ ๊ธฐ๋ณธ์ด๋ค. ๊ณต๋ถํด๋ผ
VSCode๋ณด๋ค ๋๋ฌด ๋ฌด๊ฒ๋ค๊ณ ?
๋ฅ์ณ๋ผ ๊ฑ ์จ๋ผย VSCode Intellisense ๊ณ ์น๊ธฐ ใ ๊ฐ์์
IntelliSense ์กด๋ ๋๋ฆฌ์์ (๋ ์ด๊ฑฐ ๊ณ ์น๋ ค๊ณ Clangd๊น์ง ์ฐ๊ตฌํ๋๋ฐ ํฌ๊ธฐํ์ด)
Visual Studio ๊ฐ ์ข์?
๋ชฐ๋ผ ๋์์ํด๋ผ
๋ ์์งํ ์๋๋ก์ด๋ ๋๋ฒ๊น ํ ๋, ADGE ๊น์์ Visual Studio ์์ ํธํ๊ฒ ํ ๊ฑฐ ์ ์ธํ๊ณ ๋ณ๋ก ๋ง์์๋ ๋ค
๊ทธ๋ฅ ํ
์ธ๋ฆฌ์ผ ์์ง์ ๋ฏธ๋ฆฌ ๊ตฌํ๋ ํด๋์ค๋ค์ด ๋๋ฌด ๋ง์ (ACharacter, UCharacterMovementComponent, UUserWidget ๋ฑ๋ฑ..)
ํ์ง๋ง ์์ง ๋ด๋ถ์ ํด๋์ค๋ค์ ๋๊ฒ ์ ๊ตฌํ๋์๊ณ ๊ทธ๋ฆฌ ๋ง ์ด๋ ต์ง๋ ์์ด ๊ทธ๋ฅ ๊ณต๋ถํด
๊ทผ๋ฐ ์ด๋ ๊ฒ ์ธ๋ฆฌ์ผ์์ง์ด ๋ฏธ๋ฆฌ ๊ตฌํํด๋ ํด๋์ค / ๊ธฐ๋ฅ ๋ค์ ์ฌ์ทจํด์ ๋ง์ ๋ด๊ฐ ๊ฐ๋ฐ์ ์ํ๋ ค๊ณ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊น
์ด๊ฑฐ ์ง์ง ์์ข์ ์ต๊ด์ด๋ค. ํ๋ฌ๊ทธ์ธ / ๋ฏธ๋ฆฌ ๊ตฌํ๋๊ฒ์ ์์กดํ๋ ค๊ณ ํ์ง๋งย
์ฒ์์ ๊ณต๋ถํ ๋, ์์ง ์ฝ๋๋ ์ ๋นํ ๋ณด๊ณ ์๊ธฐ๊ฐ ๊ตฌํํ๋ ์ต๊ด์ ๊ธฐ๋ฅด์. (๋ด ์๊ฐ์ผ์๋ ์์)
์ด๋ ๊ฒ ์๊ฐํ๋ ์ด์
1. ์ธ๋ฆฌ์ผ ์์ง์ ๋๋ฌด ๊ธฐ๋๋ฉด์ ๊ฒ์์ ๊ฐ๋ฐํ๋ฉด ์ธ๋ฆฌ์ผ๋ก ๋ง๋ ๊ฒ์๊ฐ์
์ด๊ฒ ๋ญ ๊ฐ์๋ฆฌ๋? ์ธ๋ฆฌ์ผ๋ก ๋ง๋ค๋ฉด ๋ญ๊ฐ ๊ฐ์ฑ์ด ์์ด๋ณด์
๋ญ๊ฐ ๋ค ๊ฐ์ ํ๋ ์์ํฌ๋ก ์ ์๋๊ฒ ๋์ ๋ณด์ย
์ด๊ฑธ ํผํ๊ณ ์ถ์ผ๋ฉด ์๊ธฐ ์ค์ค๋ก ๊ฐ๋ฐํ๋ ค๊ณ ํ๋ ์์ธ๊ฐ ์ข ํ์ํจ ๊ฑ ์์ํด
2. ์ธ๋ฆฌ์ผ ์ธก์์ ์ ๊ณตํ๋ ์ฌ๋ฌ๊ฐ์ง ํ๋ฌ๊ทธ์ธ์ ์๋ํ์ง๋งย
์ด๊ฑด ์ผ๋ฐ์ผ๊ธดํ๋ฐ ๋ณธ์ธ์ด 1์ธ๊ฐ๋ฐ์ด๋ค? ๊ฑ ํ์ง๋ง
์์๋ก GAS(Game Ability System). ์กด๋ ๋ฐฉ๋ํจ ์ธ๋๊ฒ์ ๊ฐ๋ฐ์๋ค์ด ์ธ๋งํ๊ฒ ์๋๊ฑฐ๊ฐ์ (๋ฉํฐํ๋ ์ด ๊ฐ๋ฐํ ๋๋ ์ฐ๋๊ฑฐ๋๊น ๊ดํ ์ฑ๊ธ๊ฒ์ด๋ฉด ๊ฑด๋ค์ง๋ง)
Common UI ๊ฑ ๊ฑด๋ค์ง๋ง ๋ฉํฐํ๋ ํผ ์ ์ํ ๋ ์ฐ๋๊ฑด๋ฐ ๋ณ๋ก ํธํด์ง์ง๊ฐ ์์ด.. ๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค UI Push ํ ๋ ๊ธฐ๋ณธ ์์ฑ ๋ณ์๋ฅผ ์ฃผ๋๊ฒ๋ ์ ์๋๊ณ ๊ฑ ๋ญ๊ฐ ํ๋ ์์ํฌ์์ ๋๋จ์ด์ง ๊ธฐ๋ถ์ด์ผ
๋ญ ์ด๋ฐ ์ผ์ด์ค๋ค์ด ์๊ณ ๊ทผ๋ฐ ๋ฉํฐํ๋ ์ด + ๋ฉํฐ ํ๋ ํผ ๊ฐ๋ฐ ์์ํ ๊บผ ๊ฐ์ผ๋ฉด Lyra ํด๋ณด์ ์๊ฐ๋ณด๋ค ๊ด์ฐฎ์ ํผ์ ๊ฐ๋ฐํ๋ฉด ๋ค์ง์ค๋นํ๊ณ
3. ํผ์์ ๋ฉํฐํ๋ ์ด ๊ฒ์ ๊ฐ๋ฐํ๋ ค๊ณ ํ์ง๋ง์
๋๊ฐ๋ฆฌ์ํ๋ค ๊ฑ ์ข ํ์ง๋ง ์ ๋ฐ ๋ด๊ฐ ์ฌ๋ฌ๋ฒ ๊นจ์ก์ด ๊ทธ๋ฅ ํ์ง๋ง
4. 2D ๊ฒ์์ ๊ฑ ๋ค๋ฅธ์์ง ๊ฐ์ 2.5๋นผ๊ณ
5. ํ์ถํ์
์ธ๋ฆฌ์ผ ์์ง ํผ์์ ๊ฐ๋ฐํ๋ฉด ๋ญ๊ฐ ๊ณ ๋ ๊ฐ์ด ๋ฐ๋ ค์จ๋ค
ํ์ ๊ตฌํด๋ผย
๋ฐ๋ฐ
ใ
๋ฐ๋ฐ
ใ
4๋ถ์1๋ฐ
์๋ฐ
1 ์ค์ผ ๊ณต๊ฐ๋์ง ใ ใ
๊ฐ๊ฐ
์ ์๋์ผ