string
The string representation of the GlobalObjectId
.
Obtains the string representation of the unique object identifier.
The string representation of a GlobalObjectId
can be serialized, then used at a later time to re-initialize a GlobalObjectID
struct.
The format of the string representation of the ID is GlobalObjectId_V1-{i}-{a}-{l}-{p}
, where:
{i}
is the identifier type represented by an integer (0 = Null, 1 = Imported Asset, 2 = Scene Object, 3 = Source Asset).{a}
is the asset GUID. This is a globally unique identifier that Unity assigns to every newly discovered asset. For more information, refer to Asset Metadata in the Manual.{l}
is the local file ID of the object. For objects inside a prefab instance, this ID is the local file ID of the original source object that is part of the prefab. For more information, refer to GlobalObjectId.targetObjectId.{p}
is the local file ID of the prefab instance of the object. If the object isn't part of a prefab instance, then {p}
is 0
.
Note: Actual local file IDs are signed 64-bit values and can be negative. But in a GlobalObjectId
, these values are cast to GlobalObjectId.targetObjectId, which is an unsigned 64-bit value (ulong
). Therefore, a negative local file ID will lose its sign when saved to a GlobalObjectId
and you should not rely on the value of targetObjectId
, or the {l}
element from the string representation of a GlobalObjectID, to find an object.
Additional resources: GlobalObjectId.TryParse