//可以轻松的在"UnrealName.cpp"找到这些,他们都放在一起哦
static constexpr uint32 FNameMaxBlockBits = 13;
static constexpr uint32 FNameBlockOffsetBits = 16;
static constexpr uint32 FNameMaxBlocks = 1 << FNameMaxBlockBits;
static constexpr uint32 FNameBlockOffsets = 1 << FNameBlockOffsetBits;
static constexpr uint32 FNameEntryIdBits = FNameBlockOffsetBits + FNameMaxBlockBits;
static constexpr uint32 FNameEntryIdMask = (1 << FNameEntryIdBits ) - 1;
我把他丢给了Claude:
好的,已知:
static constexpr uint32 FNameMaxBlockBits = 13;
static constexpr uint32 FNameBlockOffsetBits = 16;
根据这两个已知值,可以计算出剩余值:
static constexpr uint32 FNameMaxBlocks = 1 << FNameMaxBlockBits;
这里FNameMaxBlockBits是13,1左移13位结果是:8192
所以:
static constexpr uint32 FNameMaxBlocks = 8192;
static constexpr uint32 FNameBlockOffsets = 1 << FNameBlockOffsetBits;
这里FNameBlockOffsetBits是16,1左移16位结果是:65536
所以:
static constexpr uint32 FNameBlockOffsets = 65536;
static constexpr uint32 FNameEntryIdBits = FNameBlockOffsetBits + FNameMaxBlockBits;
FNameBlockOffsetBits + FNameMaxBlockBits = 16 + 13 = 29
所以:
static constexpr uint32 FNameEntryIdBits = 29;
static constexpr uint32 FNameEntryIdMask = (1 << FNameEntryIdBits) - 1;
1左移29位结果是:536870912,减1则是:536870911
所以:
static constexpr uint32 FNameEntryIdMask = 536870911;
请确认我的计算结果是否正确,如果有任何问题,请随时提出来讨论!
姑且就认为他的计算正确吧.