mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
Fixes for Unity version parser
This commit is contained in:
parent
5a84a67955
commit
c93d27d9a4
@ -270,7 +270,7 @@ namespace AssetStudio
|
|||||||
assetsFile.originalPath = originalPath;
|
assetsFile.originalPath = originalPath;
|
||||||
if (assetBundleUnityVer != null && assetsFile.header.m_Version < SerializedFileFormatVersion.Unknown_7)
|
if (assetBundleUnityVer != null && assetsFile.header.m_Version < SerializedFileFormatVersion.Unknown_7)
|
||||||
{
|
{
|
||||||
assetsFile.SetVersion(assetBundleUnityVer);
|
assetsFile.version = assetBundleUnityVer;
|
||||||
}
|
}
|
||||||
CheckStrippedVersion(assetsFile, assetBundleUnityVer);
|
CheckStrippedVersion(assetsFile, assetBundleUnityVer);
|
||||||
assetsFileList.Add(assetsFile);
|
assetsFileList.Add(assetsFile);
|
||||||
@ -487,7 +487,7 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
if (specifiedUnityVersion != null)
|
if (specifiedUnityVersion != null)
|
||||||
{
|
{
|
||||||
assetsFile.SetVersion(SpecifyUnityVersion);
|
assetsFile.version = SpecifyUnityVersion;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
|
|
||||||
namespace AssetStudio
|
namespace AssetStudio
|
||||||
{
|
{
|
||||||
@ -19,7 +17,6 @@ namespace AssetStudio
|
|||||||
|
|
||||||
public SerializedFileHeader header;
|
public SerializedFileHeader header;
|
||||||
private byte m_FileEndianess;
|
private byte m_FileEndianess;
|
||||||
public string unityVersion = "2.5.0f5";
|
|
||||||
public BuildTarget m_TargetPlatform = BuildTarget.UnknownPlatform;
|
public BuildTarget m_TargetPlatform = BuildTarget.UnknownPlatform;
|
||||||
private bool m_EnableTypeTree = true;
|
private bool m_EnableTypeTree = true;
|
||||||
public List<SerializedType> m_Types;
|
public List<SerializedType> m_Types;
|
||||||
@ -71,8 +68,11 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
if (header.m_Version >= SerializedFileFormatVersion.Unknown_7)
|
if (header.m_Version >= SerializedFileFormatVersion.Unknown_7)
|
||||||
{
|
{
|
||||||
unityVersion = reader.ReadStringToNull();
|
version = new UnityVersion(reader.ReadStringToNull());
|
||||||
SetVersion(new UnityVersion(unityVersion));
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
version = new UnityVersion(2, 5, 0);
|
||||||
}
|
}
|
||||||
if (header.m_Version >= SerializedFileFormatVersion.Unknown_8)
|
if (header.m_Version >= SerializedFileFormatVersion.Unknown_8)
|
||||||
{
|
{
|
||||||
@ -216,15 +216,6 @@ namespace AssetStudio
|
|||||||
//reader.AlignStream(16);
|
//reader.AlignStream(16);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetVersion(UnityVersion unityVer)
|
|
||||||
{
|
|
||||||
if (unityVer != null && !unityVer.IsStripped)
|
|
||||||
{
|
|
||||||
unityVersion = unityVer.FullVersion;
|
|
||||||
version = unityVer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private SerializedType ReadSerializedType(bool isRefType)
|
private SerializedType ReadSerializedType(bool isRefType)
|
||||||
{
|
{
|
||||||
var type = new SerializedType();
|
var type = new SerializedType();
|
||||||
|
@ -38,7 +38,7 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
int[] ver = Regex.Matches(version, @"\d+").Cast<Match>().Select(x => int.Parse(x.Value)).ToArray();
|
int[] ver = Regex.Matches(version, @"\d+").Cast<Match>().Select(x => int.Parse(x.Value)).ToArray();
|
||||||
(Major, Minor, Patch) = (ver[0], ver[1], ver[2]);
|
(Major, Minor, Patch) = (ver[0], ver[1], ver[2]);
|
||||||
if (ver.Length == 4)
|
if (ver.Length >= 4)
|
||||||
Build = ver[3];
|
Build = ver[3];
|
||||||
FullVersion = version;
|
FullVersion = version;
|
||||||
}
|
}
|
||||||
|
@ -266,7 +266,7 @@ namespace AssetStudioGUI
|
|||||||
var typeMap = await Task.Run(() => BuildClassStructure());
|
var typeMap = await Task.Run(() => BuildClassStructure());
|
||||||
productName = string.IsNullOrEmpty(productName) ? "no productName" : productName;
|
productName = string.IsNullOrEmpty(productName) ? "no productName" : productName;
|
||||||
|
|
||||||
Text = $"{guiTitle} - {productName} - {assetsManager.assetsFileList[0].unityVersion} - {assetsManager.assetsFileList[0].m_TargetPlatform}";
|
Text = $"{guiTitle} - {productName} - {assetsManager.assetsFileList[0].version} - {assetsManager.assetsFileList[0].m_TargetPlatform}";
|
||||||
|
|
||||||
assetListView.VirtualListSize = visibleAssets.Count;
|
assetListView.VirtualListSize = visibleAssets.Count;
|
||||||
|
|
||||||
@ -278,7 +278,7 @@ namespace AssetStudioGUI
|
|||||||
classesListView.BeginUpdate();
|
classesListView.BeginUpdate();
|
||||||
foreach (var version in typeMap)
|
foreach (var version in typeMap)
|
||||||
{
|
{
|
||||||
var versionGroup = new ListViewGroup(version.Key);
|
var versionGroup = new ListViewGroup(version.Key.FullVersion);
|
||||||
classesListView.Groups.Add(versionGroup);
|
classesListView.Groups.Add(versionGroup);
|
||||||
|
|
||||||
foreach (var uclass in version.Value)
|
foreach (var uclass in version.Value)
|
||||||
|
@ -429,12 +429,12 @@ namespace AssetStudioGUI
|
|||||||
return (productName, treeNodeCollection);
|
return (productName, treeNodeCollection);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dictionary<string, SortedDictionary<int, TypeTreeItem>> BuildClassStructure()
|
public static Dictionary<UnityVersion, SortedDictionary<int, TypeTreeItem>> BuildClassStructure()
|
||||||
{
|
{
|
||||||
var typeMap = new Dictionary<string, SortedDictionary<int, TypeTreeItem>>();
|
var typeMap = new Dictionary<UnityVersion, SortedDictionary<int, TypeTreeItem>>();
|
||||||
foreach (var assetsFile in assetsManager.assetsFileList)
|
foreach (var assetsFile in assetsManager.assetsFileList)
|
||||||
{
|
{
|
||||||
if (typeMap.TryGetValue(assetsFile.unityVersion, out var curVer))
|
if (typeMap.TryGetValue(assetsFile.version, out var curVer))
|
||||||
{
|
{
|
||||||
foreach (var type in assetsFile.m_Types.Where(x => x.m_Type != null))
|
foreach (var type in assetsFile.m_Types.Where(x => x.m_Type != null))
|
||||||
{
|
{
|
||||||
@ -458,7 +458,7 @@ namespace AssetStudioGUI
|
|||||||
}
|
}
|
||||||
items[key] = new TypeTreeItem(key, type.m_Type);
|
items[key] = new TypeTreeItem(key, type.m_Type);
|
||||||
}
|
}
|
||||||
typeMap.Add(assetsFile.unityVersion, items);
|
typeMap.Add(assetsFile.version, items);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return typeMap;
|
return typeMap;
|
||||||
|
Loading…
Reference in New Issue
Block a user