[UE] TIL 250728

๊น€์„ธํฌยท2025๋…„ 7์›” 25์ผ

โœ๏ธToday I Learned

๐Ÿ“… 2025-07-28

  • ์—์…‹ ์ฐธ์กฐํ•ด์„œ ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ
  • integer๋กœ boolean ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ
  • ๋‚ด๋ฐฐ์บ  Ch3 ํŒ€ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘!

์—์…‹ ์ฐธ์กฐํ•ด์„œ ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ

	// BP ์—์…‹ ์ฐธ์กฐํ•ด์„œ ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ
	static ConstructorHelpers::FClassFinder<APawn> ThirdPersonClassRef(
		TEXT("/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.BP_ThirdPersonCharacter_C"));
	// C++ ํด๋ž˜์Šค ์ฐธ์กฐํ•ด์„œ ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ
	static ConstructorHelpers::FClassFinder<APlayerController> PlayerControllerClassRef(
		TEXT("/Script/ArenaBattle.ABPlayerController"));

์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋‚˜ C++ ํด๋ž˜์Šค์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ์—์„œ ๋ณต์‚ฌํ•˜์—ฌ ํ—ค๋” ์—†์ด ํด๋ž˜์Šค ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

ConstructorHelpers::FClassFinder<>

ConstructorHelpers::FClassFinder<> ๊ฐ€ ์ฐพ๋Š” ๊ฐ’์€ UClass ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ C++ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ธ๋‹ค.
๋ธ”๋ฃจํ”„๋ฆฐํŠธ์˜ ๊ฒฝ์šฐ ์‹ค์ œ Content ํด๋”์— ์žˆ๋Š” .uasset ๊ธฐ๋ฐ˜ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ
UClass ๋Š” ์–ธ๋ฆฌ์–ผ ์—”์ง„์ด ๋Ÿฐํƒ€์ž„์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌํ”Œ๋ ‰์…˜ ์‹œ์Šคํ…œ์— ๋“ฑ๋กํ•œ ํด๋ž˜์Šค์ด๋ฏ€๋กœ C++ ํด๋ž˜์Šค ํŒŒ์ผ์˜ ์‹ค์ œ ๋””์Šคํฌ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ /Script/๋ชจ๋“ˆ๋ช….ํด๋ž˜์Šค๋ช… ๊ฐ™์€ ๊ฐ€์ƒ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋ธ”๋ฃจํ”„๋ฆฐํŠธ๊ฐ€ ๋งŒ๋“œ๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์—์…‹

  1. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์—์…‹ ์ž์ฒด
  • ์—๋””ํ„ฐ์—์„œ ๋ณด์ด๋Š” .uasset
  • ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ •์˜(์„ค๊ณ„๋„) ์ž์ฒด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ
  • ํƒ€์ž…: UBlueprint
  1. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๊ฐ€ ์‹ค์ œ๋กœ ์ƒ์„ฑํ•œ ํด๋ž˜์Šค (Generated Class)
  • ๋Ÿฐํƒ€์ž„์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” UClass ๊ฐ์ฒด
  • ์ด ํด๋ž˜์Šค ์ด๋ฆ„ ๋’ค์—๋Š” ์–ธ๋ฆฌ์–ผ์ด ์ž๋™์œผ๋กœ _C๋ฅผ ๋ถ™์ธ๋‹ค

์—์…‹์œผ๋กœ ๋ถ€ํ„ฐ ์ง์ ‘ ์ฐธ์กฐ๋ฅผ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ํ—ค๋”ํŒŒ์ผ์˜ ์˜์กด์„ฑ์„ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค.


integer๋กœ boolean ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ

boolean ์œผ๋กœ ์„ ์–ธํ•˜๋ฉด ์‚ฌ์ด์ฆˆ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” integerํ˜•์œผ๋กœ bool์„ ์„ ์–ธํ•˜๋˜ ๋ณ€์ˆ˜๋ช… ์•ž์— ์ ‘๋‘์‚ฌ b๋ฅผ ๋ถ™์—ฌ ๋‹ค๋ฅธ integerํ˜•๊ณผ ๊ตฌ๋ถ„ํ•˜๊ณ  ๋น„ํŠธ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‹ฌ์•„์ค€๋‹ค.
์‚ฌ์ด์ฆˆ๊ฐ€ ๋ช…ํ™•ํ•œ boolean ํƒ€์ž…์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

// 1๋น„ํŠธ๋งŒ ํ• ๋‹น
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Character)
uint8 bIsIdle : 1;

๐Ÿ’ก ๋А๋‚€ ์  (What I Felt)

GAS๋ฅผ ํ•™์Šตํ•˜๊ธฐ์œ„ํ•ด ๊ธฐ์ดˆ ์–ธ๋ฆฌ์–ผ ๊ฐ•์˜๋ถ€ํ„ฐ ๋“ฃ๊ณ  ์žˆ๋Š”๋ฐ ๊ฐ•์‚ฌ๋‹˜๋ณ„๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ฌ๋ผ ๊ฐ™์€ ๋ถ€๋ถ„์ด์–ด๋„ ์ฒ˜์Œ ๋“ฃ๊ฒŒ ๋˜๋Š” ์ง€์‹์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค.


์ถœ์ฒ˜ ์ธํ”„๋Ÿฐ: ์ด๋“์šฐ์˜ ์–ธ๋ฆฌ์–ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ Part2. 2-1

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