globalobjectid
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
globalobjectid [2021/02/08 08:26] – uninomiconadmin | globalobjectid [2025/01/15 04:35] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 9: | Line 9: | ||
//All notes below only apply to running the game in Play mode in the Editor.// | //All notes below only apply to running the game in Play mode in the Editor.// | ||
- | Prefabs Instances have a GID value that is different from the GID assigned when the game is run in Play Mode. When a scene is loaded in play mode, prefabs are merged | + | When a scene is loaded in play mode, prefabs are unpacked |
- | + | ||
- | Whatever process that Unity uses to unpack gameobjects(( | + | |
- | I've seen this mentioned in the profiler as Prefabs.MergePrefabs, | + | |
- | )) must be determinstic, | + | |
For example. You may have a prefab in the scene with GID: | For example. You may have a prefab in the scene with GID: | ||
Line 27: | Line 23: | ||
==== Converting a Prefab Gid to an Unpacked Gid ==== | ==== Converting a Prefab Gid to an Unpacked Gid ==== | ||
- | You can convert between the two using the following formula: | + | You can convert between the two using the following formula:(( |
+ | Source: [[https:// | ||
+ | )) | ||
'' | '' | ||
+ | ++++ Example Code| | ||
+ | |||
+ | <code csharp> | ||
+ | private static GlobalObjectId ConvertPrefabGidToUnpackedGid(GlobalObjectId id) | ||
+ | { | ||
+ | ulong fileId = (id.targetObjectId ^ id.targetPrefabId) & 0x7fffffffffffffff; | ||
+ | bool success = GlobalObjectId.TryParse( | ||
+ | $" | ||
+ | out GlobalObjectId unpackedGid); | ||
+ | Assert.IsTrue(success); | ||
+ | return unpackedGid; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ===== Bug: Querying deleted objects ===== | ||
+ | When calling '' | ||
+ | |||
+ | For example, in this case, when passed an array of only scene objects: | ||
+ | {{ : | ||
+ | |||
+ | The function will return non-scene objects (the shader editor asset at 205). | ||
+ | {{ : | ||
+ | |||
+ | This seems to be a bug. The correct result should have been '' | ||
+ | |||
+ | I have had some luck < | ||
+ | |||
+ | Update: This is fixed in 2021.1 [[https:// | ||
globalobjectid.1612772780.txt.gz · Last modified: 2025/01/15 04:35 (external edit)