혹시 TObjectPtr를 멤버변수로 가진 클래스의 직렬화 예제를 알려주실 수 있나요?
한번에 모아 보려고 한 프로젝트에서 작성중입니다.
Student의 부모인 Person에 있는 Card 때문에 오류가 나서요.
혹시 FString 변수만 따로 직렬화가 가능한지
불가능하다면 FArciveUObject를 이용해야되는것 같은데 예시가 있을지
이 두가지를 물어보고싶습니다. FArciveUObject는 사용법 예시를 아무리 검색해도 못찾아서요.
답변 2
0
음.. 이 부분을 깊게 들어가면 강의 내용이 복잡할 것 같아서 예제에는 안넣었는데,
우선 Ctrl+Shift+F를 눌러 엔진소스코드에 유사한 내용이 있는지 검색하는 것을 권장드립니다.
해당 내용이 있다면 참고하셔서 테스트해보시면 좋을 것 같아요.
만일 그래도 해결이 안되면, 한번 작성하고자 하는 예제 코드를 공유해주시겠어요? 저도 함께 고민해보겠습니다.
0
void UPerson::Serialize(FArchive& Ar)
{
//Super::Serialize(Ar);
Ar << Name;
if (Ar.IsSaving())
{
bool bHasSubObject = Card != nullptr;
Ar << HasSubObject;
if (HasSubObject)
{
Card->Serialize(Ar);
}
}
else if (Ar.IsLoading())
{
bool HasSubObject;
Ar << HasSubObject;
if (HasSubObject)
{
if (nullptr == Card)
{
Card = CreateDefaultSubobject<UCard>(TEXT("NAME_Card"));
Card->Serialize(Ar);
}
else
{
Card->Serialize(Ar);
}
}
}
}
Super::Serialize()에서 UObject*는 지원을 안한다는 assert에 걸려서 주석처리하니 Card의 포인터 자체를 직렬화하려하지 않아서 입출력이 잘되긴 하는데, 이게 맞는지는 모르겠군요.
0
혹시 Part1 강의를 다 들으셨는지요?
지금 학습하고 있는 예제의 Serialization은 일반 C++ 기본 타입에 대한 직렬화를 다루고 있습니다. 현재 구현하고자 하시는 언리얼 오브젝트를 포함하는 일반 C++ 클래스의 Serialization은 잘 사용되지 않는 케이스인데, 다른 방법을 찾아보시는게 어떨까 싶습니다
Part1 후반부의 패키지를 사용해 언리얼 오브젝트를 저장하는 방법을 참고하시면 어떨까요?
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용과 관련된 구체적인 정보는 제공된 정보 내에 포함되어 있지 않습니다. 프로그래밍 관련 질문이시지만, 해당 내용에 대한 답변을 직접 제공하진 못하겠지만, 직렬화 관련된 기본적인 가이드를 조금 드릴 수 있겠습니다.
FString 변수의 직렬화는 가능합니다. Unreal Engine에서 제공하는 모든 기본 데이터 타입들은 일반적으로 직렬화를 지원합니다. FString을 직렬화하는 방법에 대해서는 Unreal Engine의 공식 문서나 커뮤니티 포럼에서 더 다양한 예시를 찾아보실 수 있습니다.
FArchiveUObject를 사용하는 방법에 대해서는, Unreal Engine의 공식 문서에서 “Serialization” 관련 부분을 참고하시는 것이 가장 좋습니다. Unreal Engine의 공식 문서는 매우 상세하게 다루고 있어서, FArchiveUObject를 포함해 필요한 클래스의 사용 방법을 찾아볼 수 있을 겁니다. 추가적으로, Unreal Engine의 GitHub 리포지터리나 커뮤니티 포럼에서 직접 사용 예시를 검색해보는 것도 좋은 방법입니다.
직접 문의하시고 싶은 내용이 있으시다면, 다양한 온라인 커뮤니티를 활용하시거나 Unreal Engine 공식 문의 채널을 이용해 보세요. 많은 개발자들이 유사한 문제를 겪었을 가능성이 높고, 에러 메시지나 구체적인 상황을 공유하면 해결책을 제안해 줄 수 있습니다.
저는 저 노란색 미리보기 창이 안뜹니다
0
21
1
강의중에 사용하는 ppt 수업 자료
0
37
1
GetName(), SetName() 함수의 오버로딩 관련 문제 문의드립니다.
0
40
1
언리얼 공부 방법에 대해서 질문드립니다.
0
74
1
컴포지션을 위한 컴포넌트 생성에 관해 질문드립니다.
0
84
2
if (NameProp) 은 if (NameProp != nullptr)이랑 같은 의미인가요?
0
96
2
언리얼 계정 로그인 불가 문제
0
119
2
가비지컬렉션 주기를 짧게 유지하면 어떤 이슈가있을까요?
0
75
2
11강 TArray TSet 에 대해서 질문있습니다.
0
72
1
Unreal 연동 후 Visual Studio 빌드오류 제발 살려주십쇼
0
367
3
언리얼에서 제공하는 스마트 포인터 라이브러리 사용
0
75
2
FGCObject 상속 받은 객체에서 Uobject 삭제를 원할 때
0
80
2
게임 내 인벤토리 데이터를 관리 할 경우, TArray / TSet 무엇이 올바를까요?
0
75
2
8강 컴포지션 중 궁금한 것이 있습니다.
0
56
2
헤더 파일 분리 방법
0
85
2
언리얼 엔진 깃 설치
0
89
2
FObjectInitializer 를 사용한 생성자.
0
96
2
언리얼엔진 에서 새로운 클래스를 생성하면
0
75
2
GetName이 이미있는데용?
0
113
2
TObjectPtr 과 일반 포인터에 대한 용도 질문
0
105
2
UPROPERTY() 다음 라인에서 세미콜론이 입력되지 않습니다.
0
164
1
[18:50] 패키지 저장 시 이미 패키지가 있으면 로딩을 다 하고 저장하는 것이 좋은 이유가 궁금합니다
0
140
2
NonPropStudent가 GC이후 invalid된 이유
0
78
2
[44:22] 커스텀 구조체에서 GetTypeHash() 와 operator== 를 오버로딩 하는 이유에 대한 질문
0
108
2





