diff --git a/UMAProject/Assets/Standard Assets/UMA/Core/Scripts/UMAMeshData.cs b/UMAProject/Assets/Standard Assets/UMA/Core/Scripts/UMAMeshData.cs
index 1a4c9b5f..be64186b 100644
--- a/UMAProject/Assets/Standard Assets/UMA/Core/Scripts/UMAMeshData.cs
+++ b/UMAProject/Assets/Standard Assets/UMA/Core/Scripts/UMAMeshData.cs
@@ -319,6 +319,18 @@ public void PrepareVertexBuffers(int size)
#endif
}
+ ///
+ /// Initialize UMA mesh data from Unity mesh.
+ ///
+ /// Source renderer.
+ public void RetrieveDataFromUnityMesh(SkinnedMeshRenderer renderer)
+ {
+ RetrieveDataFromUnityMesh(renderer.sharedMesh);
+
+ UpdateBones(renderer.rootBone, renderer.bones);
+ }
+
+
///
/// Initialize UMA mesh data from Unity mesh.
///
@@ -346,17 +358,6 @@ public void RetrieveDataFromUnityMesh(Mesh sharedMesh)
}
}
- ///
- /// Initialize UMA mesh data from Unity mesh.
- ///
- /// Source renderer.
- public void RetrieveDataFromUnityMesh(SkinnedMeshRenderer renderer)
- {
- RetrieveDataFromUnityMesh(renderer.sharedMesh);
-
- UpdateBones(renderer.rootBone, renderer.bones);
- }
-
///
/// Validates the skinned transform hierarchy.
///
@@ -364,13 +365,13 @@ public void RetrieveDataFromUnityMesh(SkinnedMeshRenderer renderer)
/// Transforms.
public void UpdateBones(Transform rootBone, Transform[] bones)
{
- var storedRoot = rootBone;
+ var storedRootBone = rootBone;
while (rootBone.name != "Global")
{
rootBone = rootBone.parent;
if (rootBone == null)
{
- rootBone = storedRoot;
+ rootBone = storedRootBone;
break;
}
}
@@ -456,7 +457,7 @@ public void ApplyDataToUnityMesh(SkinnedMeshRenderer renderer, UMASkeleton skele
}
mesh.RecalculateBounds();
- renderer.bones = bones;// skeleton.HashesToTransforms(boneNameHashes);
+ renderer.bones = bones != null ? bones : skeleton.HashesToTransforms(boneNameHashes);
renderer.sharedMesh = mesh;
renderer.rootBone = rootBone;
}