UPROPERTY()
AActor* Something;
์ด ์์
๊ทผ๋ฐ
void SomeClass::SomeFunc()
{
ย ย AActor* Pointer = Something;
}
์ด๋ ๊ฒ ์ฌ์ฉํ๋ฉด Pointer ๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๊ฐ GC๋ก ์ธํด ์ง์์ง๋ฉด์ Something ์ด ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๊ฐ ํ๊ดด๋ ๊ฐ๋ฅ์ฑ์ด ์์?
๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํด๊ฒฐํด์ผํจ?
์์ง์์ง
์ ์ด์ Uproperty ๋งํน์๋ raw pointer๋ ๊ฐ๋น์ง์ปฌ๋ ํฐ์์ ์ธ์์กฐ์ฐจ ๋ชปํจ.
์ฅ ๊ทผ๋ฐ UPROPERTY ๋งคํฌ๋ก ์๋ฌ์๋์ ๋ฉค๋ฒ๋ณ์๋ ์ข ์ข GC๊ฐ ํ์ํด๊ฐ์ ํฐ์ง๋ ๋ฒ๊ทธ๋๋งค ์์ ์ ์ ๋จน์๋๋ฐ.. UObject ์์ฑ์์์ GC์ ๋ฑ๋กํ๋๊ฑฐ๋ผ ์๋ก ์ค๋ธ์ ํธ ์์ฑํ๋๊ฒ ์๋๋ผ ๊ทธ๋ฅ ์ฃผ์ ๋ด์ผ๋ ค๊ณ ๋ง๋๋ ํฌ์ธํฐ๋ ์ธ์ ์ํ๋๊ฒ ๋ง๋ ใ ใ ใดใ ใ ใ ใดใ ;ใ ฃใ
๊ทธ๊ฑด Uproperty ๋งํน์๋ raw pointer๋ ์ธ์์กฐ์ฐจ ์๋๋๊น ๊ฐ๋น์ง์ปฌ๋ ํฐ ์ ์ฅ์์ ์ด์๋ผ ์๋ฌด๋ ์ฐธ์กฐ์ํ๋๊น ์ง์ด๋ค๋ผ๋ ์ ์ฅ์ธ๊ฑด๋ฐ
๋ญ๊ฐ ํท๊ฐ๋ฆฌ๋์ง ์ ๋ชจ๋ฅด๊ฒ์ด
์ฌํผ UPROPERTY ๋งํน๋๊ฑธ ์๋์ ๊ฐ ์ฃผ์ ๋ด์๋ดค์ ๋ ํผ๋ฐ์ค ์นด์ดํธ ๋๋งค GC๊ฐ ํ์ ์ํด๊ฐ๋๊ฒ ๋ง์๊ฑฐ์๋์ผ
https://gall.dcinside.com/m/game_dev/112484
ํท๊ฐ๋ฆฐ๊ฑฐ๋ผ๊ธฐ๋ณด๋จ
์ด ์ค๋ฅ ํด๊ฒฐํ๋ ค๊ณ ๋จธ๋ฆฌ์ง๋ด๋ ์ค์ด์ผ ๋ด๊ฐ ์๋ชป์๋๊ฒ ์๋ ํด์
๊ทธ๋ฅ ๋๊ธ๋ง ํฌ์ธํฐ ๋ฌธ์ ์๋? ํ์ํด๊ฐ ๊ณต๊ฐ ์ฐธ์กฐํ๊ณ ์๋ raw pointer ๋ฅผ ์ฐธ์กฐํ๊ฑฐ์๋?
UPROPERTY ๋งํนํ ํ๋กํผํฐ๊ฐ ์๋ฉธ์ํค๋ ์ฝ๋๊ฐ ์๋๋ฐ ๊ฑฐ๊ธฐ์์ ์๋ฌ๊ฐ ๋๋๊ฑฐ ๋ณด๋ฉด ์๋ง ๋๊ธ๋งํฌ์ธํฐ ๋ฌธ์ ๋ ์๋๋ฏ
๊ทธ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง ์กํฐ๊ฐ ์ค๊ฐ์ ์๋ฉธ์ ์์ํค๋ ์กํฐ์
๋ฌด์จ ์๋ฌ๊ฐ๋ธ
Fatal error: [File:C:/๊ฒฝ๋ก/Engine/Source/Runtime/CoreUObject/Private/UObject/GarbageCollection.cpp] [Line: 961] Invalid object in GC: 0x000001bc40e207ad, ReferencingObject: BlockingVolume /๊ฒฝ๋ก/Lv_BaseCamp_Collision.Lv_BaseCamp_Collision:PersistentLevel.BlockingVolume34, ReferencingObjectClass: Class /Script/Engine.BlockingVolume, Property Name: Brush Name: BrushComponent, Offset: 568, TokenIndex: 34
์ด๋ฐ์์ผ๋ก ๋์ด
์ด๊ฒ๋ง ๊ฐ์ง๊ณค ์ ๋ชจ๋ฅด๊ฒ ๋๋ฐ
์ด๊ฑฐ ๋ง๊ณ ๋ ํธ์ถ์คํ์ด ๋์ธ๋ฐ ๋ฐ๋ก ๋ด์ชฝ ์ฝ๋ ์์ด ๋ฐ๋ก ์์ง์์ค๋ก ๋ค์ด๊ฐ
๊ทธ๋ฅ ์ถฉ๋ํ ๋ ์๊น? ์๋๋ฉด ๊ฑ ํค์๋ง์ ์๊ธฐ๋๊ฑฐ?
๊ทธ๋ฅ ๊ฒ ๊ตด๋ฌ๊ฐ๋ค๊ฐ ์ค๊ฐ์ ๋ฑํ ์ ์กฐ์ฆ์ ์์ด ํ
์ด๊ฑฐ ์ํ ํ๋ก์ ํธ๋ ๋ญ ๊ทธ๋ฐ๊ฑฐ์? ์๋๋ฉด ๋๊ฐ ํ๊ณ ์๋ ํ๋ก์ ํธ?
๋ด๊ฐ ํ๊ณ ์๋ ํ๋ก์ ํธ
๊ทธ๋ฌ๋ฉด... ๋๋ ์๋ชจ๋ฅด๊ฒ ๋ค..
์์ค์ฝ๋๋ณด๋ฉด์ ์ ์ ๋๋ฒ๊น ํด์ผ๊ฒ ๋๋ฐ
์ด๋ฐ๊ฑด ์ด๋ป๊ฒ ๋๋ฒ๊น ํด์ผํ ๊น ๊ฐ๋ ์์กํ๋๋ฐ ํธ์ถ์คํ์ ์ฐ๋ฆฌ ํจ์ ๋ค์ด๊ฐ์๊ฑฐ๋ ์ถ์ธก์ด ๊ฐ๋ฅํ ์๋ฌ๋ฉด ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๊ทธ๋ฅ ์์ง์์ ์ ๊ณตํ๋ ๋ธ๋กํน ๋ณผ๋ฅจ ๋ฌผ๊ณ ํฐ์ง๊ธฐ๊น์ง ํ๋๊ฒ ๊ทธ๋ฅ ๋ค๋ฅธ ๋ฌธ์ ๋๋งค ์๋ฑํ๋ฐ์์ ํฐ์ง๋ ๊ฒ ๊ฐ์๋
์ถ์ธกํ๋ฉด์ ์ป๋ ๊ธฐ๋ฅ๊ฐ์๊ฑฐ ์๋? ํ์คํ๊ฒ ์๋ ๊ธฐ๋ฅ์ด ์๋๊ณ . ๋ญ ๊ทธ๋ฐ๋ฐ์ ์ ํฐ์ง๊ธดํ๋๋ผ..
์ด๋ฐ์๋ ๋ฆฌํ๋ฆฌ์ผ์ด์ ๋ฌ์ ๋์ ํ๋กํผํฐ์์ ํฐ์ง๊ธธ๋ RPC๋ก ๋ฐ๊พธ๋ฉด์ ํด๊ฒฐํ ๊ฒ ๊ฐ์ ๋ณด์๋๋ฐ ์ดํ์ ๊ฐ์๊ธฐ ๊ทธ๋ฅ ๋ฌด์์ ์กํฐ๋ ํ๋กํผํฐ ๋ฌผ๊ณ ์ฃฝ์ด๋ฒ๋ ค์ ๊ธ์... ์ ํ ์ง์๊ฐ๋ ๋ฐ๊ฐ ์๋ค ํ๋ก๊ทธ๋๋จธ๋ 5๋ช ์ด๋ผ ์์ ๋ฌผ๋ ์๋ ํ๋ํ๋ ์ฒดํนํ๊ฑฐ๋ ํ ์ ์๋ ์ํฉ๋ ์๋๋ผ
์ ํํ GC 961๋ฒ ์ค์ด ๋ฌด์จ ์ํฉ์ ๋ก๊ทธ ์ฐํ๊ณ ์ฃฝ๋์ง ์๋ฉด ์ถ์ธก์ด๋ผ๋ ํด๋ณด๊ฒ ๋๋ฐ ๊ทธ๋ฅ GC ์์ ํฐ์ก๋ค๋๊ฑฐ ๋ง๊ณ ๋ ๋จ์๋ ์์ด์...
https://forums.unrealengine.com/t/dedicated-server-crash-gamemodebase-handlestartingnewplayer/258958/3
์ฌ๊ธฐ์
๋ฑ ๊ฐ์ ์๋ฌ ๋ฌ ์ฌ๋ ํ ๋ช ์๋๋ฐ ํด๊ฒฐํ ๋ฐฉ๋ฒ ๋ณด๋ฉด ๋ญ ๋๋ฌธ์ธ์ง ๊ทธ๋ฆฌ๊ณ ์ ํด๊ฒฐ๋๋์ง๋ ๋ชจ๋ฅด๊ณ๋ค ใ ใ