mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-07-18 03:24:15 -04:00
Improve SerializedFile reading.
This commit is contained in:
@ -4,21 +4,22 @@ namespace AssetStudio
|
||||
{
|
||||
public static class MonoBehaviourConverter
|
||||
{
|
||||
public static List<TypeTreeNode> ConvertToTypeTreeNodes(this MonoBehaviour m_MonoBehaviour, AssemblyLoader assemblyLoader)
|
||||
public static TypeTree ConvertToTypeTree(this MonoBehaviour m_MonoBehaviour, AssemblyLoader assemblyLoader)
|
||||
{
|
||||
var nodes = new List<TypeTreeNode>();
|
||||
var m_Type = new TypeTree();
|
||||
m_Type.m_Nodes = new List<TypeTreeNode>();
|
||||
var helper = new SerializedTypeHelper(m_MonoBehaviour.version);
|
||||
helper.AddMonoBehaviour(nodes, 0);
|
||||
helper.AddMonoBehaviour(m_Type.m_Nodes, 0);
|
||||
if (m_MonoBehaviour.m_Script.TryGet(out var m_Script))
|
||||
{
|
||||
var typeDef = assemblyLoader.GetTypeDefinition(m_Script.m_AssemblyName, string.IsNullOrEmpty(m_Script.m_Namespace) ? m_Script.m_ClassName : $"{m_Script.m_Namespace}.{m_Script.m_ClassName}");
|
||||
if (typeDef != null)
|
||||
{
|
||||
var typeDefinitionConverter = new TypeDefinitionConverter(typeDef, helper, 1);
|
||||
nodes.AddRange(typeDefinitionConverter.ConvertToTypeTreeNodes());
|
||||
m_Type.m_Nodes.AddRange(typeDefinitionConverter.ConvertToTypeTreeNodes());
|
||||
}
|
||||
}
|
||||
return nodes;
|
||||
return m_Type;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user