AssetStudio/UnityStudio/Classes/GameObject.cs
Perfare f87390cc2b Update README.md
Updated project
Support 2017.4
2018-03-25 13:53:52 +08:00

67 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace UnityStudio
{
public class GameObject : TreeNode
{
public List<PPtr> m_Components = new List<PPtr>();
public PPtr m_Transform;
public PPtr m_MeshRenderer;
public PPtr m_MeshFilter;
public PPtr m_SkinnedMeshRenderer;
public int m_Layer;
public string m_Name;
public ushort m_Tag;
public bool m_IsActive;
public string uniqueID = "0";//this way file and folder TreeNodes will be treated as FBX scene
public GameObject(AssetPreloadData preloadData)
{
if (preloadData != null)
{
var sourceFile = preloadData.sourceFile;
var reader = preloadData.Reader;
uniqueID = preloadData.uniqueID;
if (sourceFile.platform == -2)
{
uint m_ObjectHideFlags = reader.ReadUInt32();
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
}
int m_Component_size = reader.ReadInt32();
for (int j = 0; j < m_Component_size; j++)
{
if ((sourceFile.version[0] == 5 && sourceFile.version[1] >= 5) || sourceFile.version[0] > 5)//5.5.0 and up
{
m_Components.Add(sourceFile.ReadPPtr());
}
else
{
int first = reader.ReadInt32();
m_Components.Add(sourceFile.ReadPPtr());
}
}
m_Layer = reader.ReadInt32();
m_Name = reader.ReadAlignedString(reader.ReadInt32());
if (m_Name == "") { m_Name = "GameObject #" + uniqueID; }
m_Tag = reader.ReadUInt16();
m_IsActive = reader.ReadBoolean();
Text = m_Name;
preloadData.Text = m_Name;
//name should be unique
Name = uniqueID;
}
}
}
}