add MonoScript to dump MonoBehaviour

This commit is contained in:
Perfare
2018-08-05 04:46:27 +08:00
parent 2bd4729fe7
commit 3e59a78376
9 changed files with 380 additions and 64 deletions

View File

@@ -7,38 +7,21 @@ namespace AssetStudio
{
class MonoBehaviour
{
public string serializedText;
public PPtr m_GameObject;
public byte m_Enabled;
public PPtr m_Script;
public string m_Name;
public MonoBehaviour(AssetPreloadData preloadData, bool readSwitch)
public MonoBehaviour(AssetPreloadData preloadData)
{
var sourceFile = preloadData.sourceFile;
var reader = preloadData.InitReader();
var m_GameObject = sourceFile.ReadPPtr();
var m_Enabled = reader.ReadByte();
m_GameObject = sourceFile.ReadPPtr();
m_Enabled = reader.ReadByte();
reader.AlignStream(4);
var m_Script = sourceFile.ReadPPtr();
var m_Name = reader.ReadAlignedString();
if (readSwitch)
{
if ((serializedText = preloadData.GetClassString()) == null)
{
var str = "PPtr<GameObject> m_GameObject\r\n";
str += "\tint m_FileID = " + m_GameObject.m_FileID + "\r\n";
str += "\tint64 m_PathID = " + m_GameObject.m_PathID + "\r\n";
str += "UInt8 m_Enabled = " + m_Enabled + "\r\n";
str += "PPtr<MonoScript> m_Script\r\n";
str += "\tint m_FileID = " + m_Script.m_FileID + "\r\n";
str += "\tint64 m_PathID = " + m_Script.m_PathID + "\r\n";
str += "string m_Name = \"" + m_Name + "\"\r\n";
serializedText = str;
}
}
else
{
preloadData.extension = ".txt";
preloadData.Text = m_Name;
}
m_Script = sourceFile.ReadPPtr();
m_Name = reader.ReadAlignedString();
}
}
}

View File

@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AssetStudio
{
class MonoScript
{
public string m_Name;
public string m_ClassName;
public string m_Namespace = string.Empty;
public string m_AssemblyName;
public MonoScript(AssetPreloadData preloadData)
{
var sourceFile = preloadData.sourceFile;
var reader = preloadData.InitReader();
var version = sourceFile.version;
m_Name = reader.ReadAlignedString();
if (version[0] > 3 || (version[0] == 3 && version[1] >= 4))
{
var m_ExecutionOrder = reader.ReadAlignedString();
}
if (version[0] < 5)
{
var m_PropertiesHash = reader.ReadUInt32();
}
else
{
var m_PropertiesHash = reader.ReadBytes(16);
}
if (version[0] < 3)
{
var m_PathName = reader.ReadAlignedString();
}
m_ClassName = reader.ReadAlignedString();
if (version[0] >= 3)
{
m_Namespace = reader.ReadAlignedString();
}
m_AssemblyName = reader.ReadAlignedString();
if (version[0] < 2018 || (version[0] == 2018 && version[1] < 2))
{
var m_IsEditorScript = reader.ReadBoolean();
}
}
}
}