From b9d993e389d8ed0f435e6817e0d23c0228dc32a2 Mon Sep 17 00:00:00 2001 From: VaDiM Date: Tue, 19 May 2026 01:40:40 +0300 Subject: [PATCH] Fix missing uniqueId for some asset types --- AssetStudioCLI/Components/AssetItem.cs | 5 ++++- AssetStudioCLI/Studio.cs | 1 - AssetStudioGUI/AssetStudioGUIForm.cs | 1 + AssetStudioGUI/Components/AssetItem.cs | 10 +++++++++- AssetStudioGUI/Studio.cs | 1 - 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/AssetStudioCLI/Components/AssetItem.cs b/AssetStudioCLI/Components/AssetItem.cs index 4be7549..44a9db2 100644 --- a/AssetStudioCLI/Components/AssetItem.cs +++ b/AssetStudioCLI/Components/AssetItem.cs @@ -4,6 +4,8 @@ namespace AssetStudioCLI { internal class AssetItem { + private static long _counter; + public Object Asset; public SerializedFile SourceFile; public string Container = string.Empty; @@ -12,7 +14,7 @@ namespace AssetStudioCLI public long FullSize; public ClassIDType Type; public string Text; - public string UniqueID; + public readonly string UniqueID; public ulong Hash; public GameObjectNode Node; @@ -24,6 +26,7 @@ namespace AssetStudioCLI TypeString = Type.ToString(); m_PathID = asset.m_PathID; FullSize = asset.byteSize; + UniqueID = $" #{_counter++}"; Hash = 0; } } diff --git a/AssetStudioCLI/Studio.cs b/AssetStudioCLI/Studio.cs index 3639aa5..6da8e6f 100644 --- a/AssetStudioCLI/Studio.cs +++ b/AssetStudioCLI/Studio.cs @@ -216,7 +216,6 @@ namespace AssetStudioCLI { var assetItem = new AssetItem(asset); objectAssetItemDic.Add(asset, assetItem); - assetItem.UniqueID = "_#" + i; var isExportable = false; switch (asset) { diff --git a/AssetStudioGUI/AssetStudioGUIForm.cs b/AssetStudioGUI/AssetStudioGUIForm.cs index d5c4e63..df08e78 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.cs +++ b/AssetStudioGUI/AssetStudioGUIForm.cs @@ -1587,6 +1587,7 @@ namespace AssetStudioGUI Logger.Info("Resetting program..."); Text = guiTitle; + AssetItem.Reset(); Studio.assetsManager.Clear(); Studio.assemblyLoader.Clear(); Studio.exportableAssets.Clear(); diff --git a/AssetStudioGUI/Components/AssetItem.cs b/AssetStudioGUI/Components/AssetItem.cs index 0bc34c8..7f0e884 100644 --- a/AssetStudioGUI/Components/AssetItem.cs +++ b/AssetStudioGUI/Components/AssetItem.cs @@ -5,6 +5,8 @@ namespace AssetStudioGUI { internal class AssetItem : ListViewItem { + private static long _counter; + public Object Asset; public SerializedFile SourceFile; public string Container = string.Empty; @@ -13,7 +15,7 @@ namespace AssetStudioGUI public long FullSize; public ClassIDType Type; public string InfoText; - public string UniqueID; + public readonly string UniqueID; public ulong Hash; public GameObjectTreeNode TreeNode; @@ -25,6 +27,7 @@ namespace AssetStudioGUI TypeString = Type.ToString(); m_PathID = asset.m_PathID; FullSize = asset.byteSize; + UniqueID = $" #{_counter++}"; Hash = 0; } @@ -38,5 +41,10 @@ namespace AssetStudioGUI FullSize.ToString(), //Size }); } + + public static void Reset() + { + _counter = 0; + } } } diff --git a/AssetStudioGUI/Studio.cs b/AssetStudioGUI/Studio.cs index 4ede476..f200c97 100644 --- a/AssetStudioGUI/Studio.cs +++ b/AssetStudioGUI/Studio.cs @@ -234,7 +234,6 @@ namespace AssetStudioGUI { var assetItem = new AssetItem(asset); objectAssetItemDic.Add(asset, assetItem); - assetItem.UniqueID = " #" + i; var exportable = false; switch (asset) {