VS๋กœ Development Editor ๋””๋ฒ„๊น… ํ–ˆ์„ ๋•Œ๋ž‘ Development ๋กœ ๋””๋ฒ„๊น… ํ–ˆ์„ ๋•Œ ์ง„ํ–‰๋˜๋Š” ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.


๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•˜์ž๋ฉด


Game Instance - Game Manager - Player Manager - Player

Game Instance - Game Manager - Player Managerย -ย Input Actor


์ด๋ ‡๊ฒŒ ๋“ค์–ด๊ฐ€๋Š”๋ฐ Player๋Š” AIController ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Character Controller ์„ ๋น™์˜ ๋ฐ›๋Š” Input Actor ๊ฐ€ ํ•˜๋‚˜ ๋” ์žˆ์Šต๋‹ˆ๋‹ค.




Default Pawn Class๋Š” Input Actor ๋กœ ์ง€์ •์ด ๋˜์–ด์žˆ๊ณ  ๊ฐ ์˜ค๋ธŒ์ ํŠธ์˜ ์ƒ์„ฑ ์‹œ๊ธฐ๋Š”


Game Manager : Game Instance์˜ Init() ํ•จ์ˆ˜

Player Manger : Game Manager์˜ PostInitializeComponents() ํ•จ์ˆ˜

Player : Player Manager์˜ PostInitializeComponents() ํ•จ์ˆ˜


์ž…๋‹ˆ๋‹ค.




์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด Input Actor์˜ BeginPlay() ํ•จ์ˆ˜์—์„œ


FAttachmentTransformRules rule(EAttachmentRule::KeepRelative, false);

AttachToActor(Cast<UDHGameInstance>(GetGameInstance())->GetGameManager()->GetPlayerManager()->GetPlayer(), rule);


์œ„ ์ฝ”๋“œ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š”๋ฐ ์—๋””ํ„ฐ์—์„œ๋Š”

Game Manager์˜ PostInitializeComponents() -> Player Manager์˜ PostInitializeComponents() -> Player Manager์˜ PostInitializeComponents() -> Input Actor์˜ BeginPlay()


์ˆœ์„œ๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.




๊ทธ๋Ÿฐ๋ฐ Development๋กœ ๋งž์ถฐ ๋†“์€ ํ›„ ๋””๋ฒ„๊น…์„ ์ง„ํ–‰ํ•˜๋ฉด ๋ชจ๋“  PostInitializeComponents() ํ•จ์ˆ˜๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  Input Actor์˜ BeginPlay()๋กœ ๋„˜์–ด๊ฐ€๋ฒ„๋ฆฌ๋ฉด์„œ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ Player๋ฅผ ์ฐธ์กฐํ•˜๋ฉฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋ฐ”๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.


์•กํ„ฐ์˜ ์ƒ์„ฑ ์‹œ๊ธฐ๋ฅผ ์ž˜๋ชป ์žก์€ ๊ฑด๊ฐ€์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์—๋””ํ„ฐ์—์„œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”๊ฑด๊ฐ€์š”? ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ์•กํ„ฐ์˜ ์ƒ์„ฑ ์‹œ๊ธฐ๊ฐ€ ์ž˜๋ชป ๋˜์—ˆ๋‹ค๋ฉด ์–ด๋А ๋‹จ๊ณ„์—์„œ ์•กํ„ฐ๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•˜๋‚˜์š”?