๊ฒ€์ƒ‰ํ•ด๋„ ๋„์ €ํžˆ ๋ชป ์ฐพ์•„์„œ ์—ฌ๊ธฐ๋‹ค ๊ธ€ ์˜ฌ๋ฆผ.
ํ˜„์žฌ ์–ธ๋ฆฌ์–ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์—†์–ด์„œ ์‹คํ—˜์„ ์ง์ ‘ ๋ชป ํ•ด์š”.




์–ธ๋ฆฌ์–ผ ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ๋Š”


UPROPERTY()
UObject* MyObject;

TWeakObjectPtr<UObject> AnotherObject;


์ด๋Ÿฐ์‹์œผ๋กœ UPROPERTY()๋กœ ์„ ์–ธ๋œ ๋งด๋ฒ„ ๋ณ€์ˆ˜๋‚˜ UObject ์ „์šฉ ํฌ์ธํ„ฐ๋ฅผ ์ถ”์ ํ•˜์ž–์•„์š”?
๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ


USTRUCT()
struct FMyStruct
{
UPROPERTY()
UObject* MyObject;

TWeakObjectPtr<UObject> AnotherObject;
}


์ด๋Ÿฐ์‹์˜ UStruct๊ฐ€ ์žˆ๊ณ 


TSharedPtr<FMyStruct> MySharedStruct;


๊ทธ UStruct๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์‰์–ด๋“œ ํฌ์ธํ„ฐ๊ฐ€ ๋งด๋ฒ„ ๋ณ€์ˆ˜๋กœ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด,
์‰์–ด๋“œ ํฌ์ธํ„ฐ๊ฐ€ ์ฐธ์กฐํ•˜๋Š” UStruct์•ˆ์˜ ๋งด๋ฒ„ ๋ณ€์ˆ˜๋„ ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ๊ฐ€ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

  • ์‰์–ด๋“œ ํฌ์ธํ„ฐ๋Š” ์–ธ๋ฆฌ์–ผ ์˜ค๋ธŒ์ ํŠธ(UObject ์™€ ์ด๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋œ ํด๋ž˜์Šค)์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ธ๋ฆฌ์–ผ ์—”์ง„์€ โ€˜UObject' ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ์žˆ์œผ๋ฉฐ (์–ธ๋ฆฌ์–ผ ์˜ค๋ธŒ์ ํŠธ ์ฒ˜๋ฆฌ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”) ๋‘ ์‹œ์Šคํ…œ์€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค

์–ธ๋ฆฌ์–ผ ๋ฌธ์„œ์—๋Š” ์‰์–ด๋“œ ํฌ์ธํ„ฐ๋Š” UObject๋ž‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ์™„์ „ํžˆ ๋‹ค๋ฅด๋‹ค๊ณ  ๋‚˜์™€์žˆ๋Š”๋ฐ,
UStruct๋ž‘ ์‚ฌ์šฉํ• ์‹œ ๊ทธ UStruct์•ˆ์˜ ๋งด๋ฒ„ ๋ณ€์ˆ˜๋Š” ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํŒ…์ด ๊ฐ€๋Šฅํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.