[UE5] 사용자 정의 타입을 Key 값으로 갖는 TMap

초연·2023년 4월 27일
0

UE5

목록 보기
3/3

사용자 정의 객체를 TMap 컨테이너의 Key로 사용하려면, 등호 연산자 오버라이드 및 GetTypeHash 함수 오버로딩이 필요하다.

자세한 설명은 에픽 게임즈 튜토리얼에 나와 있다.

#include "Misc/Crc.h"

USTRUCT(BlueprintType)
struct FObjectID
{
	GENERATED_BODY()

public:
	uint64 ContentsID;
	uint64 DatabaseID;

	FObjectID()
		: ContentsID(0), DatabaseID(0) {}

	FObjectID(uint64 InContentsID, uint64 InDatabaseID)
		: ContentsID(InContentsID), DatabaseID(InDatabaseID) {}

	FObjectID(const FObjectID& InObjectID)
		: ContentsID(InObjectID.ContentsID), DatabaseID(InObjectID.DatabaseID) {}

	bool operator==(const FObjectID& InObjectID) const
	{
		return ContentsID == InObjectID.ContentsID && DatabaseID == InObjectID.DatabaseID;
	}
};

FORCEINLINE uint32 GetTypeHash(const FObjectID& InObjectID)
{
	uint32 Hash = FCrc::MemCrc32(&InObjectID, sizeof(FObjectID));
	return Hash;
}
profile
게임 클라이언트 프로그래머

0개의 댓글