[Unreal Engine 5] Obstacle Assault 02

๊ฐฌ๋ฏธยท2025๋…„ 4์›” 3์ผ

[Unreal Engine 5] Obstacle Assault

๋ชฉ๋ก ๋ณด๊ธฐ
2/5
post-thumbnail

๐Ÿ“Œ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์˜ ์œ„์น˜๋ฅผ ํ”Œ๋ ˆ์ด์–ด ์œ„์น˜๋กœ ์„ค์ •ํ•ด๋‘๊ธฐ
  • ์—๋””ํ„ฐ ์ƒ์—์„œ ์‹คํ–‰ ํ›„, ๊ฒฐ๊ณผ ํ™”๋ฉด โ–ผ

0๊ฐœ์˜ ๋Œ“๊ธ€