This commit is contained in:
Perfare 2018-10-16 12:39:20 +08:00
parent 3442b39784
commit 40b191f039
2 changed files with 23 additions and 7 deletions

View File

@ -113,14 +113,17 @@ namespace AssetStudio
for (int i = 0; i < objectCount; i++) for (int i = 0; i < objectCount; i++)
{ {
//each table entry is aligned individually, not the whole table AssetPreloadData asset = new AssetPreloadData();
if (header.m_Version >= 14)
if (header.m_Version < 14)
{
asset.m_PathID = reader.ReadInt32();
}
else
{ {
reader.AlignStream(4); reader.AlignStream(4);
asset.m_PathID = reader.ReadInt64();
} }
AssetPreloadData asset = new AssetPreloadData();
asset.m_PathID = header.m_Version < 14 ? reader.ReadInt32() : reader.ReadInt64();
asset.Offset = reader.ReadUInt32(); asset.Offset = reader.ReadUInt32();
asset.Offset += header.m_DataOffset; asset.Offset += header.m_DataOffset;
asset.Size = reader.ReadInt32(); asset.Size = reader.ReadInt32();
@ -180,7 +183,15 @@ namespace AssetStudio
{ {
var m_ScriptType = new LocalSerializedObjectIdentifier(); var m_ScriptType = new LocalSerializedObjectIdentifier();
m_ScriptType.localSerializedFileIndex = reader.ReadInt32(); m_ScriptType.localSerializedFileIndex = reader.ReadInt32();
m_ScriptType.localIdentifierInFile = header.m_Version < 14 ? reader.ReadInt32() : reader.ReadInt64(); if (header.m_Version < 14)
{
m_ScriptType.localIdentifierInFile = reader.ReadInt32();
}
else
{
reader.AlignStream(4);
m_ScriptType.localIdentifierInFile = reader.ReadInt64();
}
m_ScriptTypes.Add(m_ScriptType); m_ScriptTypes.Add(m_ScriptType);
} }
} }
@ -204,6 +215,11 @@ namespace AssetStudio
m_Externals.Add(m_External); m_Externals.Add(m_External);
} }
if (header.m_Version >= 5)
{
//var userInformation = reader.ReadStringToNull();
}
buildType = Regex.Replace(unityVersion, @"\d", "").Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries); buildType = Regex.Replace(unityVersion, @"\d", "").Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);
var firstVersion = int.Parse(unityVersion.Split('.')[0]); var firstVersion = int.Parse(unityVersion.Split('.')[0]);
version = Regex.Matches(unityVersion, @"\d").Cast<Match>().Select(m => int.Parse(m.Value)).ToArray(); version = Regex.Matches(unityVersion, @"\d").Cast<Match>().Select(m => int.Parse(m.Value)).ToArray();

View File

@ -20,7 +20,7 @@ namespace AssetStudio
return true; return true;
} }
if (m_FileID > 0) if (m_FileID > 0 && m_FileID - 1 < assetsFile.m_Externals.Count)
{ {
if (index == -2) if (index == -2)
{ {