๐UE 5 ์ฃผ์์ฌํญ:.NET 6 ์ค์น
- โ๋น์ฃผ์ผ ์คํ๋์ค ์ค์นํ๊ธฐโ์์ UE 5.0 ์ฌ์ฉ ์, .NET Core 3.1 ์ค์น
- ์ด ํจํค์ง๋ UE 5.1 ๋๋ ์ดํ ๋ฒ์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์
โ .NET 6.0 ์ค์นํด์ผ ํจ!! โ .NET 8.0์ผ๋ก ๋์ฒด (6.0์ ์ง์ ๋๋จ)
๐๋น์ฃผ์ผ ์คํ๋์ค ์ค์นํ๊ธฐ
- ํ์ฌ UE ๋ฒ์ ์ ์ง์ํ๋ ๋น์ฃผ์ผ ์คํ๋์ค ๋ฒ์ ํ์ธํ๊ธฐ

- ๋น์ฃผ์ผ ์คํ๋์ค ์ค์น ํ๋ก๊ทธ๋จ ๋ค์ด
- "Game Development With C++" ์ ํ ํ, ๋ค์ด

๐ธ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋ ์ค์นํ๊ธฐ
- ์ค์น ๊ด๋ฆฌ์ ๋ค์ด ํ, ์คํ
- ํ์ฅ ํ๋ก๊ทธ๋จ ํญ ์ฐพ๊ธฐ
- ๋ค์ด ๋ฐ์์ผ ํ ํ์ฅ ํ๋ก๊ทธ๋จ
"C/C++" by Microsoft
์ ํ์ฌํญ: "UE 4 Snippets" by CAPTNCAPS

๐ฆC++ ํ๋ก์ ํธ ์ปดํ์ผ๋งํ๊ธฐ
- ํธ์ง > ์๋ํฐ ๊ฐ์ธ์ค์ > ์ผ๋ฐ - ์์ค์ฝ๋
์์ค์ฝ๋ ์๋ํฐ๋ฅผ visual studio code๋ก ๋ณํ ํ, ์ฌ์์
- ์ C++ ํด๋์ค ์์ฑ โ ํด > ์ C++ ํด๋์ค ์ ํ

- IDE = ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ, ์์ค ์ฝ๋ ์๋ํฐ๋ฅผ ๋งํจ
- VS Code
ํฐ๋ฏธ๋ > ๋น๋ ์์
์คํ > "ObstacleAssaultEditor Win64 Development Build" ์ ํ
โ ์๋ก ์ถ๊ฐ๋ C++์ ์ฐ๋ฆฌ ์๋ํฐ์์ ์คํ๋ ์ ์๋ ๋ฐ์ด๋๋ฆฌ๋ก ์ปดํ์ผํ๋ ๊ณผ์
- Content ํด๋ ๋ค์์ 'C++ Classes Folder'๋ฅผ ๋ณผ ์ ์์
๐UPROPERTY ๋ณ์
- MovingPlatform ์กํฐ์ ๋ณ์ ์ถ๊ฐ โ ์๋ํฐ์์ ํ์ธ ๊ฐ๋ฅํ๋๋ก
- ๋ณ์ ์์ฑ ๋ฐฉ๋ฒ
MovingPlatform.h (ํค๋ ํ์ผ)์ ๋ณ์ ์์ฑ ์ฝ๋ ์ถ๊ฐ โผ
...
public:
...
int32 MyInt = 99;
...
- ์ด ๋ด์ฉ์ด ๋ธ๋ฃจํ๋ฆฐํธ ์๋ํฐ ์์์๋ ๋ณด์ด์ง ์์
๋ณด์ด๊ฒ ํ๊ธฐ ์ํด ํ์ํด์ผ ํ ๋ณ์๊ฐ ์๋ค๋ ์ ์ ์ธ๋ฆฌ์ผ์ ์๋ ค์ผ ํจ
โ UPROPERTY(EditAnywhere)์ ์์ ์ฝ๋ ์์ ์ถ๊ฐํด์ฃผ๊ธฐ
- ์๋๋ ์ฝ๋ ์์ฑ ํ, ์๋ํฐ ์ข
๋ฃ ํ, ์ฝ๋ ์ปดํ์ผ โ ์๋ํฐ ์ฌ์คํํด์ผ ํจ
Unreal์๋ Live Coding์ด ์กด์ฌ! ๋ฐ์ ๋ฒํผ ํด๋ฆญ ์, ์ฝ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๋ฉ์์ง ๋ก๊ทธ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํฐ๋ฏธ๋ ์ฐฝ ํ์ธ ๊ฐ๋ฅ

๐จC++ ์์
๐จ
- ์๋ก ์์ฑํ ๋ณ์ MyInt, MyFloat, MyBool ์๋ํฐ ์์์ ํ์ธ ๊ฐ๋ฅ

๐จ๋ผ์ด๋ธ ์ฝ๋ฉ ๋ฌธ์
- MovingPlatform์ ์ UPROPERTY ์ถ๊ฐ โ ์๋ํฐ์์ new ๋ณ์ ๊ฐ ๋ณ๊ฒฝ
โ ์๋ํฐ ์ฌ์คํ โ new ๋ณ์ ์ฌ๋ผ์ง โ Live Coding ๋ฒํผ ํด๋ฆญ โ new ๋ณ์ ์ฌ์์ฑ โ ๋ณ๊ฒฝ๋ ๊ฐ์ผ๋ก ๋์ค์ง ์๊ณ ๊ธฐ์กด ๊ฐ์ผ๋ก ๋์ด
- ๋ผ์ด๋ธ ์ฝ๋ฉ์ ์๋ํฐ์ ๋ณ๊ฒฝ ์ฌํญ์๋ง ์ํฅ์ ๋ฏธ์น๊ณ ๋์คํฌ์ ์๊ตฌ์ ์ ์ฅ X
โ ์๋ํฐ ์ข
๋ฃ ํ, VS Code์์ ์ปดํ์ผ ํ, ์๋ํฐ ์ฌ์คํ โ ๋ณ๊ฒฝ๋ new ๋ณ์ ์ฌ์ฉ ๊ฐ๋ฅ!
๐ปC++ ํ์ผ ๋ฐ BeginPlay
- ์ค์ ๋ก ๊ธฐ๋ฅ ์คํํ๋ ๋ฒ ์์๋ณด๊ธฐ
๐จC++ ์์
๐จ
- MovingPlatform.h (ํค๋ ํ์ผ)์ ๋ณ์ ์์ฑ
InputA, InputB, APlusB // InputAFloat, InputBFloat, APlusBFloat
- MovingPlatform.cpp์ ๊ธฐ๋ฅ ์ถ๊ฐ
APlusB = InputA + InputB;
APlusBFloat = InputAFloat + InputBFloat;

- ์๋ํฐ ์์์ ์คํ ํ, ๊ฒฐ๊ณผ ํ๋ฉด โผ

๐C++์์ ๊ตฌ์กฐ์ฒด ์ฌ์ฉํ๊ธฐ
- ๋ฒกํฐ, ํธ๋์คํผ ๋ค๋ฃจ๊ธฐ
๐์ฉ์ด ์ ๋ฆฌ
- ์์ฑ์
: ์ ๊ตฌ์กฐ์ฒด๋ ํด๋์ค ๊ฐ์ ๋ง๋๋ ๊ฒ
- ์ฐ์ฐ์
: ์ด๋ค ์ญํ ์ ์ํํ๋ C++์ ๊ธฐํธ
eg. +-=*/
- ์ ์ฐ์ฐ์
: ๊ตฌ์กฐ์ฒด๋ ํด๋์ค์์ ๋ญ๊ฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ
๐จC++ ์์
๐จ
- ๊ตฌ์กฐ์ฒด์ ๊ฐ์ด ์ ๊ตํ ํ์
์๋ ์์ฑ์ ์ฌ์ฉํด์ผ ํจ
FVector MyFloat = FVector(x๊ฐ, y๊ฐ, z๊ฐ)
// โฒ ํค๋ ํ์ผ
MyX = MyVector.X;
// โฒ cpp ํ์ผ
๐ขC++์์ ํจ์ ํธ์ถํ๊ธฐ
- ํจ์๊ฐ ๋ธ๋ฃจํ๋ฆฐํธ์์ C++๋ก ์ด๋ป๊ฒ ์ฎ๊ฒจ์ง๋์ง ์์๋ณด๊ธฐ
SetActorLocation(MyVector);
// โฒ cpp ํ์ผ
- MovingPlatform ์์ Cube ์ถ๊ฐํ๊ณ
MyVector์ ์์น๋ฅผ ํ๋ ์ด์ด ์์น๋ก ์ค์ ํด๋๊ธฐ

- ์๋ํฐ ์์์ ์คํ ํ, ๊ฒฐ๊ณผ ํ๋ฉด โผ
