Catalog.json: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m TadeLn moved page Catalog catalog.json to Catalog.json |
(No difference)
|
Revision as of 12:57, 10 December 2024
A file from the com.unity.addressables library. It is a list of all assets used in a game.
JSON structure
- (root)
m_LocatorId
(string) - Name of this catalog, for example:AddressablesMainContentCatalog
m_BuildResultHash
(string) - Hash of the catalog build, for example:71d0441090abbc8f1a7305f2ea3c8b62
. Notably, it seems to be different from catalog_catalog.hashm_InstanceProviderData
(provider object) - InstanceProvider information. See #Provider object structure for details.m_SceneProviderData
(provider object) - SceneProvider information. See #Provider object structure for details.m_ResourceProviderData
(array) - All available resource providers.- (provider object) - A ResourceProvider. See #Provider object structure for details.
m_ProviderIds
(array) - List of some of the IDs fromm_ResourceProviderData
.-
(string)
- An ID of a resource provider, for example:
UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
.
-
(string)
- An ID of a resource provider, for example:
m_InternalIds
(array) - List of all internal IDs. These IDs are most likely used by the game, and this list is used to find details about the asset.-
(string)
- An internal ID. May be a weird path, for example:
{UnityEngine.AddressableAssets.Addressables.RuntimePath}/Android/crilocaldata_assets_all.bundle
; a 32-character-long hexadecimal string, for example:033f3660efceadd40b8cd2845b485652
; an asset path, for example:Assets/CriData/Addressables/dice20.daily.0.acb=4493e0.asset
; a short name, for example:EfficientBlur
; a URL, for example:http://rizastcdn.pigeongames.cn/default/Android/1a2a40bd550976c58c842045215f204e.bundle
; and it probably can be any other UTF-8 string.
-
(string)
- An internal ID. May be a weird path, for example:
m_KeyDataString
(string) - Base64 encoded string containing binary data. See #Key data binary format for details.m_BucketDataString
(string) - Base64 encoded string containing binary data. See #Bucket data binary format for details.m_EntryDataString
(string) - Base64 encoded string containing binary data. See #Entry data binary format for details.m_ExtraDataString
(string) - Base64 encoded string containing binary data. See #Extra data binary format for details.m_resourceTypes
(array) - A list of all of the types of assets in the catalog.-
(object type object)
- An object type, for example:
{"m_AssemblyName": "UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "m_ClassName": "UnityEngine.TextAsset"}
. See #Object type object structure for details.
-
(object type object)
- An object type, for example:
Provider object structure
- (root)
m_Id
(string) - ID of this provider, for example:UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
.m_ObjectType
(object type object) - Object type of this provider, for example:{"m_AssemblyName": "Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "m_ClassName": "UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider"}
. See #Object type object structure for details.m_Data
(string) - Additional data for this provider. So far, only empty strings have been found.
Object type object structure
- (root)
m_AssemblyName
(string) - Assembly name of the object's class, for example:Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
.m_ClassName
(string) - This object's class name, for example:UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
.
Binary formats
Note: All values are in little-endian.
Key data binary format
- (root)
key_count
(uint32) - 4-byte integer, indicating the amount of keys stored in the whole structure.keys
(array) - A list of keys. The length of the list can be determined by either using thekey_count
field, or reading until the end of the binary data.-
(struct)
- A key. The size of the struct is variable.
key_type
(uint8) - 1-byte number, indicating the type of the key. Known key types are:0
- UTF-8 key;1
- UTF-16 key;4
- int32 key.key_content
(union)text_content
(sized string struct) - Only present if key type is0
or1
. The type of the string is UTF-8 ifkey_type
is0
and UTF-16 (little-endian) ifkey_type
is1
. This field is the key's name. See #Sized string binary format for details.numeric_content
(uint32) - Only present if key type is4
. This field is the key's name.
-
(struct)
- A key. The size of the struct is variable.
Bucket data binary format
- (root)
bucket_count
(uint32) - 4-byte integer, indicating the amount of buckets stored in the whole structure.buckets
(array) - A list of buckets. The length of the list can be determined by either using thebucket_count
field, or reading until the end of the binary data.-
(struct)
- A bucket. The size of the struct is variable.
bucket_id
(uint32) - 4-byte integer, probably some kind of bucket ID.entry_count
(uint32) - 4-byte integer, determining the amount of entries in theentries
array.entries
(array) - Array of 4-byte indices. The length of this array is determined by theentry_count
field.-
(uint32)
- An index. This value is used to index the array that is contained within the binary blob encoded in
m_EntryDataString
.
-
(uint32)
- An index. This value is used to index the array that is contained within the binary blob encoded in
-
(struct)
- A bucket. The size of the struct is variable.
Entry data binary format
[unfinished]
Extra data binary format
[unfinished]
Sized string binary format
- (root)
length
(uint32) - 4-byte integer, determines the amount of bytes in thetext
field.text
(array) - Byte array with the contents of the string. The exact format (UTF-8 vs UTF-16) must be determined separately.- (uint8) - A byte within the string.