์ธ๊ฒŒ์ž„ ์—๋””ํ„ฐ์—์„œ ์•กํ„ฐ(๋˜๋Š” ๊ทธ ์ปดํฌ๋„ŒํŠธ)์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ํ•˜๋‚˜๋ผ๋„ ๋ณ€๊ฒฝํ•˜๋ฉด

ํ•ด๋‹น ์•กํ„ฐ์˜ ์ปจ์ŠคํŠธ๋Ÿญ์…˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰๋˜๋Š”๋ฐ


์ด๋•Œย ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•œ ์ปดํฌ๋„ŒํŠธ๋„ ์‚ญ์ œ๋œ๋‹ค

์—”์ง„ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉด, BP ์Šคํฌ๋ฆฝํŠธ๋กœ ์ถ”๊ฐ€๋œ ๋ชจ๋“  ๋™์  ์ปดํฌ๋„ŒํŠธ๋Š” ์ปจ์ŠคํŠธ๋Ÿญ์…˜ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ถ”๊ฐ€๋œ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•จ

์ด๋Ÿฌํ•œ ๊ฐ€์ •์— ์˜ํ•ด ์ค‘๋ณต์ถ”๊ฐ€๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ดย ์ปจ์ŠคํŠธ๋Ÿญ์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์žฌ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์‹น ๋ฐ€์–ด๋ฒ„๋ฆฐ๋‹ค


์ด ๋•Œ๋ฌธ์— ์ปจ์ŠคํŠธ๋Ÿญ์…˜ ์Šคํฌ๋ฆฝํŠธ ์™ธ์˜ BeginPlay ์ด๋ฒคํŠธ๋ผ๋“ ๊ฐ€

๋‹ค๋ฅธ ์—‰๋šฑํ•œ ๊ณณ์—์„œ ๋™์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด ์–„์งค์—†์ด ์‚ญ์ œ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค

๋ฌผ๋ก  BP ์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ์–˜๊ธฐ๊ณ  C++์—์„œ ์ถ”๊ฐ€ํ•œ ์ปดํฌ๋„ŒํŠธ๋Š” ๊ดœ์ฐฎ์Œ


์š”์•ฝํ•˜๋ฉด, BP ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š”

๋ฐ˜๋“œ์‹œ ์ปจ์ŠคํŠธ๋Ÿญ์…˜ ์Šคํฌ๋ฆฝํŠธ ๋‚ด๋ถ€์—์„œ๋งŒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค


๊ด€๋ จ ์—”์ง„ ์ฝ”๋“œ ๋ถ„์„ํ•ด๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€


AActor::RerunConstructionScripts()

ใ„ดAActor::DestroyConstructedComponents()


์—ฌ๊ธฐ ๋ณด๋ฉด ๋จ


UActorComponent::IsCreatedByConstructionScript()๊ฐ€ true์ธ ์• ๋“ค์ด ์‚ญ์ œ๋˜๋Š”๋ฐ

์ด๊ฒŒ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€ํ• ๋• ๋ฌด์กฐ๊ฑด AActor::AddComponent() ์•„๋‹ˆ๋ฉด AActor::AddComponentByClass()๊ฐ€ ํ˜ธ์ถœ๋˜๊ฑฐ๋“ ?

๋‚ด๋ถ€์—์„œ ํ˜ธ์ถœ๋˜๋Š” AActor::PostCreateBlueprintComponent()์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์ปดํฌ๋„ŒํŠธ์˜ CreationMethod๋ฅผ ๋ฌด์กฐ๊ฑด UserConstructionScript๋กœ ์„ค์ •ํ•ด๋ฒ„๋ฆผ


์ด๊ฒŒ ๋ฒ„๊ทธ์ธ์ง€ ์˜๋„๋œ ๋™์ž‘์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ

์ปจ์ŠคํŠธ๋Ÿญ์…˜ ์Šคํฌ๋ฆฝํŠธ ๋ง๊ณ  ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€ ๋…ธ๋“œ๋ฅผ ์•„์˜ˆ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ๋ผ๋„ ํ–ˆ์œผ๋ฉด ์ข‹์•˜์„ํ…๋ฐ ์•„์‰ฌ์›€

๋•๋ถ„์— ๋ฒ„๊ทธ ์›์ธ ์ฐพ๋А๋ผ ์‚ฝ์งˆํ–ˆ๋„ค