![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include "CoreMinimal.h"#include "UObject/ObjectMacros.h"#include "UObject/UObjectGlobals.h"#include "Misc/NetworkGuid.h"#include "Misc/NetworkVersion.h"#include "UObject/CoreNet.h"#include "Net/Core/NetToken/NetToken.h"#include "Net/DataBunch.h"#include "Net/NetAnalyticsTypes.h"#include "ProfilingDebugging/CsvProfiler.h"#include "HAL/LowLevelMemTracker.h"#include "PackageMapClient.generated.h"Go to the source code of this file.
Classes | |
| class | FNetFieldExport |
| class | FNetFieldExportGroup |
| class | FNetGuidCacheObject |
| struct | FQueuedBunchObjectReference |
| class | FNetGUIDCache |
| class | FPackageMapAckState |
| class | UPackageMapClient |
Namespaces | |
| namespace | UE |
| namespace | UE::Net |
| namespace | UE::Net::Private |
Enumerations | |
| enum class | EAppendNetExportFlags : uint32 { None = 0 , ForceExportDirtyGroups = (1 << 0) } |
Functions | |
| LLM_DECLARE_TAG_API (GuidCache, ENGINE_API) | |
| ENUM_CLASS_FLAGS (EAppendNetExportFlags) | |
|
strong |
| ENUM_CLASS_FLAGS | ( | EAppendNetExportFlags | ) |
| LLM_DECLARE_TAG_API | ( | GuidCache | , |
| ENGINE_API | |||
| ) |
PackageMap implementation that is client/connection specific. This subclass implements all NetGUID Acking and interactions with a UConnection. On the server, each client will have their own instance of UPackageMapClient.
UObjects are first serialized as <NetGUID, Name/Path> pairs. UPackageMapClient tracks each NetGUID's usage and knows when a NetGUID has been ACKd. Once ACK'd, objects are just serialized as <NetGUID>. The result is higher bandwidth usage upfront for new clients, but minimal bandwidth once things gets going.
A further optimization is enabled by default. References will actually be serialized via: <NetGUID, <(Outer *), Object Name> >. Where Outer * is a reference to the UObject's Outer.
The main advantages from this are: -Flexibility. No precomputed net indices or large package lists need to be exchanged for UObject serialization. -Cross version communication. The name is all that is needed to exchange references. -Efficiency in that a very small % of UObjects will ever be serialized. Only Objects that serialized are assigned NetGUIDs.