mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-27 22:00:23 -04:00
fixed GameObject in Unity 5.5
This commit is contained in:
parent
08bf84146b
commit
2e84b08494
@ -8,8 +8,9 @@ namespace Unity_Studio
|
|||||||
{
|
{
|
||||||
public class GameObject : TreeNode
|
public class GameObject : TreeNode
|
||||||
{
|
{
|
||||||
|
public List<PPtr> m_Components = new List<PPtr>();
|
||||||
public PPtr m_Transform;
|
public PPtr m_Transform;
|
||||||
public PPtr m_Renderer;
|
public PPtr m_MeshRenderer;
|
||||||
public PPtr m_MeshFilter;
|
public PPtr m_MeshFilter;
|
||||||
public PPtr m_SkinnedMeshRenderer;
|
public PPtr m_SkinnedMeshRenderer;
|
||||||
public int m_Layer;
|
public int m_Layer;
|
||||||
@ -39,25 +40,14 @@ namespace Unity_Studio
|
|||||||
int m_Component_size = a_Stream.ReadInt32();
|
int m_Component_size = a_Stream.ReadInt32();
|
||||||
for (int j = 0; j < m_Component_size; j++)
|
for (int j = 0; j < m_Component_size; j++)
|
||||||
{
|
{
|
||||||
int m_Component_type = a_Stream.ReadInt32();
|
if ((sourceFile.version[0] == 5 && sourceFile.version[1] >= 5) || sourceFile.version[0] > 5)//5.5.0 and up
|
||||||
|
|
||||||
switch (m_Component_type)
|
|
||||||
{
|
{
|
||||||
case 4:
|
m_Components.Add(sourceFile.ReadPPtr());
|
||||||
m_Transform = sourceFile.ReadPPtr();
|
}
|
||||||
break;
|
else
|
||||||
case 23:
|
{
|
||||||
m_Renderer = sourceFile.ReadPPtr();
|
int first = a_Stream.ReadInt32();
|
||||||
break;
|
m_Components.Add(sourceFile.ReadPPtr());
|
||||||
case 33:
|
|
||||||
m_MeshFilter = sourceFile.ReadPPtr();
|
|
||||||
break;
|
|
||||||
case 137:
|
|
||||||
m_SkinnedMeshRenderer = sourceFile.ReadPPtr();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
PPtr m_Component = sourceFile.ReadPPtr();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ using System.Text;
|
|||||||
|
|
||||||
namespace Unity_Studio
|
namespace Unity_Studio
|
||||||
{
|
{
|
||||||
class Renderer
|
class MeshRenderer
|
||||||
{
|
{
|
||||||
public PPtr m_GameObject;
|
public PPtr m_GameObject;
|
||||||
public bool m_Enabled;
|
public bool m_Enabled;
|
||||||
@ -15,7 +15,7 @@ namespace Unity_Studio
|
|||||||
public ushort m_LightmapIndexDynamic;
|
public ushort m_LightmapIndexDynamic;
|
||||||
public PPtr[] m_Materials;
|
public PPtr[] m_Materials;
|
||||||
|
|
||||||
public Renderer(AssetPreloadData preloadData)
|
public MeshRenderer(AssetPreloadData preloadData)
|
||||||
{
|
{
|
||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var a_Stream = preloadData.sourceFile.a_Stream;
|
var a_Stream = preloadData.sourceFile.a_Stream;
|
@ -174,7 +174,7 @@
|
|||||||
<Compile Include="Unity Classes\MonoBehaviour.cs" />
|
<Compile Include="Unity Classes\MonoBehaviour.cs" />
|
||||||
<Compile Include="Unity Classes\PlayerSettings.cs" />
|
<Compile Include="Unity Classes\PlayerSettings.cs" />
|
||||||
<Compile Include="Unity Classes\RectTransform.cs" />
|
<Compile Include="Unity Classes\RectTransform.cs" />
|
||||||
<Compile Include="Unity Classes\Renderer.cs" />
|
<Compile Include="Unity Classes\MeshRenderer.cs" />
|
||||||
<Compile Include="Unity Classes\Shader.cs" />
|
<Compile Include="Unity Classes\Shader.cs" />
|
||||||
<Compile Include="Unity Classes\SkinnedMeshRenderer.cs" />
|
<Compile Include="Unity Classes\SkinnedMeshRenderer.cs" />
|
||||||
<Compile Include="Unity Classes\MeshFilter.cs" />
|
<Compile Include="Unity Classes\MeshFilter.cs" />
|
||||||
|
@ -809,6 +809,8 @@ namespace Unity_Studio
|
|||||||
|
|
||||||
foreach (var m_GameObject in assetsFile.GameObjectList.Values)
|
foreach (var m_GameObject in assetsFile.GameObjectList.Values)
|
||||||
{
|
{
|
||||||
|
assetsfileList.ParseGameObject(m_GameObject);
|
||||||
|
|
||||||
var parentNode = fileNode;
|
var parentNode = fileNode;
|
||||||
|
|
||||||
Transform m_Transform;
|
Transform m_Transform;
|
||||||
@ -2017,9 +2019,9 @@ namespace Unity_Studio
|
|||||||
|
|
||||||
#region get Renderer
|
#region get Renderer
|
||||||
AssetPreloadData RendererPD;
|
AssetPreloadData RendererPD;
|
||||||
if (assetsfileList.TryGetPD(m_GameObject.m_Renderer, out RendererPD))
|
if (assetsfileList.TryGetPD(m_GameObject.m_MeshRenderer, out RendererPD))
|
||||||
{
|
{
|
||||||
Renderer m_Renderer = new Renderer(RendererPD);
|
MeshRenderer m_Renderer = new MeshRenderer(RendererPD);
|
||||||
|
|
||||||
foreach (var MaterialPPtr in m_Renderer.m_Materials)
|
foreach (var MaterialPPtr in m_Renderer.m_Materials)
|
||||||
{
|
{
|
||||||
|
@ -24,13 +24,13 @@ namespace Unity_Studio
|
|||||||
int FileID = a_Stream.ReadInt32();
|
int FileID = a_Stream.ReadInt32();
|
||||||
if (FileID >= 0 && FileID < sourceFile.sharedAssetsList.Count)
|
if (FileID >= 0 && FileID < sourceFile.sharedAssetsList.Count)
|
||||||
{ result.m_FileID = sourceFile.sharedAssetsList[FileID].Index; }
|
{ result.m_FileID = sourceFile.sharedAssetsList[FileID].Index; }
|
||||||
|
|
||||||
if (sourceFile.fileGen < 14) { result.m_PathID = a_Stream.ReadInt32(); }
|
if (sourceFile.fileGen < 14) { result.m_PathID = a_Stream.ReadInt32(); }
|
||||||
else { result.m_PathID = a_Stream.ReadInt64(); }
|
else { result.m_PathID = a_Stream.ReadInt64(); }
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool TryGetPD(this List<AssetsFile> assetsfileList, PPtr m_elm, out AssetPreloadData result)
|
public static bool TryGetPD(this List<AssetsFile> assetsfileList, PPtr m_elm, out AssetPreloadData result)
|
||||||
{
|
{
|
||||||
result = null;
|
result = null;
|
||||||
@ -73,6 +73,44 @@ namespace Unity_Studio
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ParseGameObject(this List<AssetsFile> assetsfileList, GameObject m_GameObject)
|
||||||
|
{
|
||||||
|
foreach (var m_Component in m_GameObject.m_Components)
|
||||||
|
{
|
||||||
|
if (m_Component.m_FileID >= 0 && m_Component.m_FileID < assetsfileList.Count)
|
||||||
|
{
|
||||||
|
AssetsFile sourceFile = assetsfileList[m_Component.m_FileID];
|
||||||
|
AssetPreloadData asset;
|
||||||
|
if (sourceFile.preloadTable.TryGetValue(m_Component.m_PathID, out asset))
|
||||||
|
{
|
||||||
|
switch (asset.Type2)
|
||||||
|
{
|
||||||
|
case 4: //Transform
|
||||||
|
{
|
||||||
|
m_GameObject.m_Transform = m_Component;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 23: //MeshRenderer
|
||||||
|
{
|
||||||
|
m_GameObject.m_MeshRenderer = m_Component;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 33: //MeshFilter
|
||||||
|
{
|
||||||
|
m_GameObject.m_MeshFilter = m_Component;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 137: //SkinnedMeshRenderer
|
||||||
|
{
|
||||||
|
m_GameObject.m_SkinnedMeshRenderer = m_Component;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TexEnv
|
class TexEnv
|
||||||
|
Loading…
Reference in New Issue
Block a user