Fixes for Unity version parser

This commit is contained in:
VaDiM
2024-09-27 16:43:06 +03:00
parent 5a84a67955
commit c93d27d9a4
5 changed files with 14 additions and 23 deletions

View File

@@ -270,7 +270,7 @@ namespace AssetStudio
assetsFile.originalPath = originalPath;
if (assetBundleUnityVer != null && assetsFile.header.m_Version < SerializedFileFormatVersion.Unknown_7)
{
assetsFile.SetVersion(assetBundleUnityVer);
assetsFile.version = assetBundleUnityVer;
}
CheckStrippedVersion(assetsFile, assetBundleUnityVer);
assetsFileList.Add(assetsFile);
@@ -487,7 +487,7 @@ namespace AssetStudio
}
if (specifiedUnityVersion != null)
{
assetsFile.SetVersion(SpecifyUnityVersion);
assetsFile.version = SpecifyUnityVersion;
}
}

View File

@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
namespace AssetStudio
{
@@ -19,7 +17,6 @@ namespace AssetStudio
public SerializedFileHeader header;
private byte m_FileEndianess;
public string unityVersion = "2.5.0f5";
public BuildTarget m_TargetPlatform = BuildTarget.UnknownPlatform;
private bool m_EnableTypeTree = true;
public List<SerializedType> m_Types;
@@ -71,8 +68,11 @@ namespace AssetStudio
}
if (header.m_Version >= SerializedFileFormatVersion.Unknown_7)
{
unityVersion = reader.ReadStringToNull();
SetVersion(new UnityVersion(unityVersion));
version = new UnityVersion(reader.ReadStringToNull());
}
else
{
version = new UnityVersion(2, 5, 0);
}
if (header.m_Version >= SerializedFileFormatVersion.Unknown_8)
{
@@ -216,15 +216,6 @@ namespace AssetStudio
//reader.AlignStream(16);
}
public void SetVersion(UnityVersion unityVer)
{
if (unityVer != null && !unityVer.IsStripped)
{
unityVersion = unityVer.FullVersion;
version = unityVer;
}
}
private SerializedType ReadSerializedType(bool isRefType)
{
var type = new SerializedType();

View File

@@ -38,7 +38,7 @@ namespace AssetStudio
{
int[] ver = Regex.Matches(version, @"\d+").Cast<Match>().Select(x => int.Parse(x.Value)).ToArray();
(Major, Minor, Patch) = (ver[0], ver[1], ver[2]);
if (ver.Length == 4)
if (ver.Length >= 4)
Build = ver[3];
FullVersion = version;
}