Fixed bug

This commit is contained in:
Perfare 2018-10-25 15:02:57 +08:00
parent 22b2d472bc
commit 3cd6126ed9
5 changed files with 35 additions and 76 deletions

View File

@ -836,7 +836,7 @@ namespace AssetStudio
case ClassIDType.MonoBehaviour:
{
var m_MonoBehaviour = new MonoBehaviour(asset);
if (asset.serializedType.m_Nodes != null)
if (asset.serializedType?.m_Nodes != null)
{
textPreviewBox.Text = asset.Dump();
}

View File

@ -11,34 +11,17 @@ namespace AssetStudio
public BuildSettings(AssetPreloadData preloadData) : base(preloadData)
{
int levels = reader.ReadInt32();
for (int l = 0; l < levels; l++)
int levelsNum = reader.ReadInt32();
for (int i = 0; i < levelsNum; i++)
{
var level = reader.ReadAlignedString();
}
if (version[0] >= 5)
{
int preloadedPlugins = reader.ReadInt32();
for (int l = 0; l < preloadedPlugins; l++)
{
var preloadedPlugin = reader.ReadAlignedString();
}
}
var hasRenderTexture = reader.ReadBoolean();
var hasPROVersion = reader.ReadBoolean();
var hasPublishingRights = reader.ReadBoolean();
var hasShadows = reader.ReadBoolean();
reader.Position += 4;
if (version[0] >= 3) //3.0 and up
{
reader.Position += 4;
}
if (version[0] > 3 || (version[0] == 3 && version[1] >= 5))//3.5 and up
{
reader.Position += 4;
}
if (version[0] >= 5 || (version[0] == 4 && (version[1] >= 3 || (version[1] == 2 && buildType[0] != "a"))))
{
reader.Position += 4;
}
m_Version = reader.ReadAlignedString();
}
}

View File

@ -12,62 +12,38 @@ namespace AssetStudio
public PlayerSettings(AssetPreloadData preloadData) : base(preloadData)
{
if ((version[0] == 5 && version[1] >= 4) || version[0] > 5)//5.4.0 nad up
if (version[0] > 5 || (version[0] == 5 && version[1] >= 4)) //5.4.0 nad up
{
//productGUID
reader.ReadInt32();
reader.ReadInt32();
reader.ReadInt32();
reader.ReadInt32();
var productGUID = reader.ReadBytes(16);
}
if (version[0] >= 3)
var AndroidProfiler = reader.ReadBoolean();
//bool AndroidFilterTouchesWhenObscured 2017.2 and up
//bool AndroidEnableSustainedPerformanceMode 2018 and up
reader.AlignStream(4);
int defaultScreenOrientation = reader.ReadInt32();
int targetDevice = reader.ReadInt32();
if (version[0] < 5 || (version[0] == 5 && version[1] < 3)) //5.3 down
{
if (version[0] == 3 && version[1] < 2)
if (version[0] < 5) //5.0 down
{
string AndroidLicensePublicKey = reader.ReadAlignedString();
}
else
{
bool AndroidProfiler = reader.ReadBoolean(); reader.AlignStream(4);
}
int defaultScreenOrientation = reader.ReadInt32();
int targetDevice = reader.ReadInt32();
if (version[0] < 5 || (version[0] == 5 && version[1] < 1))
{
int targetGlesGraphics = reader.ReadInt32();
}
if ((version[0] == 5 && version[1] < 1) || (version[0] == 4 && version[1] == 6 && version[2] >= 3))
{
int targetIOSGraphics = reader.ReadInt32();
}
if (version[0] >= 5 || version[0] == 5 && (version[1] > 2 || (version[1] == 2 && version[2] >= 1)))
{
bool useOnDemandResources = reader.ReadBoolean(); reader.AlignStream(4);
}
if (version[0] < 5 || (version[0] == 5 && version[1] < 3))
{
int targetResolution = reader.ReadInt32();
}
if (version[0] == 3 && version[1] <= 1)
{
bool OverrideIPodMusic = reader.ReadBoolean(); reader.AlignStream(4);
}
else if (version[0] == 3 && version[1] <= 4)
{
}
else//3.5.0 and up
{
int accelerometerFrequency = reader.ReadInt32();
int targetPlatform = reader.ReadInt32(); //4.0 and up targetGlesGraphics
if (version[0] > 4 || (version[0] == 4 && version[1] >= 6)) //4.6 and up
{
var targetIOSGraphics = reader.ReadInt32();
}
}
int targetResolution = reader.ReadInt32();
}
else
{
var useOnDemandResources = reader.ReadBoolean();
reader.AlignStream(4);
}
if (version[0] > 3 || (version[0] == 3 && version[1] >= 5)) //3.5 and up
{
var accelerometerFrequency = reader.ReadInt32();
}
//fail in version 5 beta
companyName = reader.ReadAlignedString();
productName = reader.ReadAlignedString();
}

View File

@ -50,7 +50,7 @@ namespace AssetStudio
public string Dump()
{
var reader = InitReader();
if (serializedType.m_Nodes != null)
if (serializedType?.m_Nodes != null)
{
var sb = new StringBuilder();
TypeTreeHelper.ReadTypeString(sb, serializedType.m_Nodes, reader);

View File

@ -107,7 +107,7 @@ namespace AssetStudio
return false;
var m_MonoBehaviour = new MonoBehaviour(asset);
string str;
if (asset.serializedType.m_Nodes != null)
if (asset.serializedType?.m_Nodes != null)
{
str = asset.Dump();
}