์์ฑ์์์ย
Class = CretaeDefaultSubobject<ClassType>....
๋ฅผ ํตํด์ SubObject๋ฅผ ์์ฑํ๋ฉด ํ์ฌํด๋์ค์์ย SubObject์ ํจ์๋ ๋ณ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์์?
๊ทผ๋ฐ ClassType::StaticClass()๋ฅผ ์ฐ๋ฉด ํด๋น ClassType์ ์ปดํ์ผํ์์์ ์์ฑ๋ย UClass๋ฅผ ๋ฐํํด์ฃผ๋๊ฑธ๋ก ์๊ณ ์์ด
UClass์๋ ํจ์๋ ๋ฉค๋ฒ๋ณ์์ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ค๊ณ ์๊ณ ์๊ฑฐ๋ ?
๊ทธ๋ผ ๋ด๊ฐ ์๊ฐํ๊ธฐ์ CreateDefualtSubObject๋ฅผ ์์จ๋ StaticClass()๋ฅผ ์จ์ UClass๋ฅผ ๊ฐ์ ธ์จ๋ค์ ๊ทธ๊ฑธ ClassType์ผ๋ก ์บ์คํ ํ๋ฉด ๋๊ฐ์ด ๋ฉค๋ฒ๋ณ์๋ ๋ฉค๋ฒํจ์์ ์ ๊ทผํ ์ ์๊ฒ ๋ค?ย ๋ผ๊ณ ์๊ฐํด์ ํ๋ฒ ํ ์คํธํด๋ดค๋๋ฐ
UClass* A = ClassType::StaticClass(); ๋ฅผ ์ฌ์ฉํด์
ํฌ์ธํฐ A์ ClassType์ UClass๋ฅผ ๋ฐ์์์๋
์ด๊ฑธ ClassType*ย AA = Cast<ClassType>(A); ์ด๋ฐ์์ผ๋ก ์บ์คํ ํ๋๋ฐย AA๊ฐ nullptr๊ฐ ๋๋๋ผ๊ณ
์ฐพ์๋ณด๋๊น UClass๋ ์บ์คํ ์ด ์๋๊ณ ย ย TFieldIterator<>๋ฅผ ์ฐ๋ฉด ํจ์๋ ๋ณ์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ๋ํ๋๋ฐ
๋ด๊ฐ ๊ถ๊ธํ๊ฑด ์ AA๊ฐ ์บ์คํ ์๋๊ณ nullptr๊ฐ ๋๋์ง ๊ถ๊ธํจ
์คํผ๋ ์ดํฐ ์์์ ์์ธ์ฒ๋ฆฌ ํด์ค๊ฑฐ๊ฒ ์ง. ์ฉ c++์ด์์ผ๋ฉด ๊ทธ๋ฅ ๋ณํํด์ฃผ๊ณ ํฌ๋์ ๋ด๋ฒ๋ฆผ