Developer knowledge network · moderated exchange

Супольнасць UnreliableCode

Супольнасць распрацоўшчыкаў даследаванняў, зваротнага праектавання і кадавання

Knowledge indexжыць
4Categories
919Threads
2.8KПаведамленні
Tutorial

Traversing Unity GameObjectManager Active Node Linked List in Rust IL2CPP [v2.4 Technical Discussion]

rust_il2cpp_dev
IL2CPP Master
MEMBER
прадстаўнік: 165
Дата далучэння: Oct 2020
Паведамленні: 7
Дзякуй: 16
1 месяцаў таму · Jul 4, 2026 11:20 AM
#1

In Unity engine (UnityPlayer.dll), GameObjectManager maintains doubly-linked lists of all game objects in the scene:

  1. Base pointer: GOM = *(uint64_t*)(UnityPlayerBase + 0x17C12E0).
  2. Structure:
    • 0x08: lastTaggedObject
    • 0x10: taggedObjects (Active entities: Players, Heli, Bradleys)
    • 0x18: lastActiveObject
    • 0x20: activeObjects (Ores, Collectibles, Traps, Crates)

Iterating taggedObjects->nextObject reads all player entities in under 12 microseconds without calling game methods!

ptr_arithmetic
C++ Wizard
MEMBER
прадстаўнік: 162
Дата далучэння: May 2018
Паведамленні: 73
Дзякуй: 42
1 месяцаў таму · Jul 4, 2026 6:14 PM
#2

Traversing GOM linked lists is so much faster than calling UnityEngine.Object.FindObjectsOfType in IL2CPP.

vtable_slayer
Senior Reverser
MEMBER
прадстаўнік: 215
Дата далучэння: Mar 2018
Паведамленні: 86
Дзякуй: 61
1 месяцаў таму · Jul 5, 2026 1:02 AM
#3

Essential offset for external memory reading in Rust.