MidLevel/
)This data level provides a structural and relational view of the project's assets. It is designed for understanding the hierarchy of scenes and prefabs, and for locating assets within the project.
Use this data for questions like:
SampleScene.unity
."Player.prefab
file."a1b2c3d4...
."The MidLevel
folder will contain a replicated Assets/
directory and a GuidMappers/
directory.
MidLevel/
├── Assets/
│ ├── Scenes/
│ │ └── SampleScene.json // This was originally SampleScene.unity
│ └── CustomGame/
│ └── Prefabs/
│ └── Player.json // This was originally Player.prefab
└── GuidMappers/
├── materials.json
├── prefabs.json
├── scripts.json
├── scenes.json
└── ... (other asset types)
GuidMappers/*.json
These files map the unique GUID of an asset to its project-relative file path. This is essential for cross-referencing. For example, when you find a script GUID in a scene file, you can look it up in scripts.json
to find the script's path.
Schema Example (scripts.json
):
{
"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6": "Assets/Scripts/PlayerController.cs",
"f1e2d3c4b5a69876543210fedcba9876": "Assets/Scripts/Gun.cs"
}
Assets/**/*.json
(Scene/Prefab Hierarchy)Each .unity
and .prefab
file is converted into a single JSON file that describes its full visual hierarchy. The root of the JSON is a list of all top-level objects in that scene or prefab.
Schema Example (SampleScene.json
):
[
{
"fileID": "14854",
"m_Name": "Main Camera",
"m_IsActive": 1,
"m_TagString": "MainCamera",
"m_Layer": 0,
"components": [
"Camera",
"AudioListener",
"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" // Script GUIDs are used for MonoBehaviours
],
"children": []
},
{
"fileID": "123456", // This is the fileID of the PrefabInstance
"source_prefab_guid": "abcdef1234567890abcdef1234567890",
"m_Name": "Explosion Effect",
"m_IsActive": 1,
"addedComponents": [], // Components added as an override in the scene
"children": [
{
"fileID": "789012",
"m_Name": "Smoke Trail",
"m_IsActive": 1,
"m_TagString": "Untagged",
"m_Layer": 0,
// This index preserves the object's order within the prefab's hierarchy
"deep_sibling_index": "0-1",
"components": ["ParticleSystem"],
"children": []
}
]
}
]
fileID
: The unique ID of the GameObject or PrefabInstance within the file.source_prefab_guid
: Indicates that this node is an instance of a prefab.components
/ addedComponents
: A list of components attached. For scripts, this is the script's GUID.children
: A nested list of child objects, forming the tree structure.deep_sibling_index
: Only present for scene objects parented under a prefab instance. It defines the object's precise location in the hierarchy for correct ordering.The JSON files in this folder may have been processed by json_reducer.py
. You can identify this if the root object contains a key_mapper
and a data
key.
If the data is shrunken:
{"key_mapper":{"k0":"fileID",...},"data":[{"k0":"14854",...}]}
key_mapper
object to de-tokenize the keys in the data
object before you can interpret the schema.json_reducer
also removes keys with empty values (e.g., an empty children
array []
will be removed). If a key like children
is missing from a de-tokenized object, you can assume its value was empty.Once de-tokenized, the data will conform to the schemas described above.