Skip to content

Commit 1f5db8b

Browse files
committed
Skinned Mesh Renderer support
1 parent 32909b6 commit 1f5db8b

3 files changed

Lines changed: 27 additions & 5 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@ sysinfo.txt
3535

3636
# Models. For testing
3737
Assets/Models*
38+
Assets/Meshes*
3839
*.pptx

Assets/Plugins/MeshDebugger/Editor/MeshDebugger.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public enum DebugVertice { None, Index, Shared, Duplicates }
4040
private Vector3 m_sceneCamPos;
4141
private Matrix4x4 m_matrix;
4242
private MeshInfo m_cpu = new MeshInfo();
43+
private Mesh m_tempMesh;
4344

4445
private bool m_hasUpdated = false;
4546

@@ -72,7 +73,11 @@ void OnDisable()
7273
}
7374
}
7475

75-
void OnDestroy() { m_Gizmo.Dispose(); }
76+
void OnDestroy() {
77+
m_Gizmo.Dispose();
78+
if (m_Mesh)
79+
DestroyImmediate(m_Mesh);
80+
}
7681

7782
void OnSelectionChange()
7883
{
@@ -86,17 +91,33 @@ void OnSelectionChange()
8691
{
8792
var m = m_Transform.GetComponent<MeshFilter>();
8893
var m2 = m_Transform.GetComponent<Graphic>();
94+
var m3 = m_Transform.GetComponent<SkinnedMeshRenderer>();
8995
if (m) m_Mesh = m.sharedMesh;
9096
else if (m2)
9197
{
92-
var m3 = m_Transform.gameObject.AddComponent<MeshDebuggerProxyUI>();
98+
var m4 = m_Transform.gameObject.AddComponent<MeshDebuggerProxyUI>();
9399
m_Mesh = null;
94-
m3.callback += () =>
100+
m4.callback += () =>
95101
{
96-
m_Mesh = m3.mesh;
102+
m_Mesh = m4.mesh;
97103
m_hasUpdated = false;
98104
};
99105
}
106+
else if (m3 && m3.sharedMesh)
107+
{
108+
if (!m_tempMesh)
109+
{
110+
m_tempMesh = new Mesh();
111+
m_tempMesh.hideFlags = HideFlags.HideAndDontSave;
112+
}
113+
else
114+
{
115+
m_tempMesh.Clear();
116+
}
117+
118+
m3.BakeMesh(m_Mesh = m_tempMesh);
119+
m_Mesh.name = m3.sharedMesh.name + " (Snapshot)";
120+
}
100121
else
101122
m_Mesh = null;
102123
}

Assets/Plugins/MeshDebugger/Editor/MeshInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ public void UnpackTriangleIdx(int src, out int submesh, out int localidx)
278278
{
279279
for (int i = m_MeshSubmeshCount; i --> 0;)
280280
{
281-
if (i > 0 && m_IndiceOffsets[i - 1] > src)
281+
if (i > 0 && m_IndiceOffsets[i] > src)
282282
continue;
283283
submesh = i;
284284
localidx = src - m_IndiceOffsets[i];

0 commit comments

Comments
 (0)