fixed a regression when using Front Facing or Immutable Triangles

This commit is contained in:
ZimM 2015-02-28 05:31:44 +02:00
parent be7480bca4
commit f42d76a59b

View File

@ -517,8 +517,13 @@ public class SkeletonRenderer : MonoBehaviour {
addSubmeshArgumentsCurrentMesh.Count = addSubmeshArgumentsTemp.Count; addSubmeshArgumentsCurrentMesh.Count = addSubmeshArgumentsTemp.Count;
addSubmeshArgumentsTemp.CopyTo(addSubmeshArgumentsCurrentMesh.Items); addSubmeshArgumentsTemp.CopyTo(addSubmeshArgumentsCurrentMesh.Items);
lastState.frontFacing = frontFacing; if (useMesh1) {
lastState.immutableTriangles = immutableTriangles; lastState.frontFacingMesh1 = frontFacing;
lastState.immutableTrianglesMesh1 = immutableTriangles;
} else {
lastState.frontFacingMesh2 = frontFacing;
lastState.immutableTrianglesMesh2 = immutableTriangles;
}
useMesh1 = !useMesh1; useMesh1 = !useMesh1;
} }
@ -526,8 +531,8 @@ public class SkeletonRenderer : MonoBehaviour {
private bool MustUpdateMeshStructure(ExposedList<int> attachmentsTriangleCountTemp, ExposedList<LastState.AddSubmeshArguments> addSubmeshArgumentsTemp) { private bool MustUpdateMeshStructure(ExposedList<int> attachmentsTriangleCountTemp, ExposedList<LastState.AddSubmeshArguments> addSubmeshArgumentsTemp) {
// Check if any mesh settings were changed // Check if any mesh settings were changed
bool mustUpdateMeshStructure = bool mustUpdateMeshStructure =
frontFacing != lastState.frontFacing || frontFacing != (useMesh1 ? lastState.frontFacingMesh1 : lastState.frontFacingMesh2) ||
immutableTriangles != lastState.immutableTriangles; immutableTriangles != (useMesh1 ? lastState.immutableTrianglesMesh1 : lastState.immutableTrianglesMesh2);
#if UNITY_EDITOR #if UNITY_EDITOR
mustUpdateMeshStructure |= !Application.isPlaying; mustUpdateMeshStructure |= !Application.isPlaying;
#endif #endif
@ -703,8 +708,10 @@ public class SkeletonRenderer : MonoBehaviour {
#endif #endif
private class LastState { private class LastState {
public bool frontFacing; public bool frontFacingMesh1;
public bool immutableTriangles; public bool frontFacingMesh2;
public bool immutableTrianglesMesh1;
public bool immutableTrianglesMesh2;
public int vertexCount; public int vertexCount;
public readonly ExposedList<int> attachmentsTriangleCountTemp = new ExposedList<int>(); public readonly ExposedList<int> attachmentsTriangleCountTemp = new ExposedList<int>();
public readonly ExposedList<int> attachmentsTriangleCountMesh1 = new ExposedList<int>(); public readonly ExposedList<int> attachmentsTriangleCountMesh1 = new ExposedList<int>();