작성한 질문수
이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
9강 무한맵의 제작
해결된 질문
2023. 11. 08. 13:07 작성
·
452
0
IsPending()은 객체정보는 있지만 로딩되지 않았을 때 True.
IsValid()는 객체정보있고 로딩도 되있을 때 True 인가요??
그렇다면,
IsPending()은 nullptr 일 때 false.
IsValid()는 객체정보는 있고 로딩 전 일때 false 인가요??
답변 1
1
2023. 11. 08. 23:48
소프트레퍼런스란 내용물은 주소에 해당하는 문자열인데, 내부적으로는 실제하는 어떤 오브젝트를 가리킵니다.IsPending은 소프트레퍼런스 내부에서 가리키는 오브젝트가 존재하고, 유효하면 true가 반환됩니다.
IsValid는 대상 언리얼 오브젝트가 유효하면 ( 가비지컬렉터에 의해서 관리되면 ) true가 반환됩니다.
2023. 11. 09. 01:53
아,, 제가 SoftObjectPtr이랑 WeakObjectPtr이랑 같은 건줄 알고 혼동했네요....
SoftObjectPtr은 가지고있는 오브젝트를 나중에 로딩하려는 목적이고
WeakObjectPtr은 먼저 destroy되는 오브젝트를 메모리 해제시키려는 목적인 것이지요?
2023. 11. 09. 02:07
사실 거의 비슷한 개념입니다. 다만 WeakPointer(약포인터)는 상호참조 문제를 피하기 위해 레퍼런스를 약하게 걸어둔 ( 한단계 쿠션을 더 쳐둔 ) 포인터로 사용됩니다.
아,, 제가 SoftObjectPtr이랑 WeakObjectPtr이랑 같은 건줄 알고 혼동했네요....
SoftObjectPtr은 가지고있는 오브젝트를 나중에 로딩하려는 목적이고
WeakObjectPtr은 먼저 destroy되는 오브젝트를 메모리 해제시키려는 목적인 것이지요?