|
@@ -265,14 +265,21 @@ public class SkeletonComponent : MonoBehaviour {
|
|
|
|
|
|
if (submeshes.Count <= submeshIndex) submeshes.Add(new Submesh());
|
|
if (submeshes.Count <= submeshIndex) submeshes.Add(new Submesh());
|
|
Submesh submesh = submeshes[submeshIndex];
|
|
Submesh submesh = submeshes[submeshIndex];
|
|
-
|
|
|
|
|
|
+
|
|
// Allocate indexes if not the right size, allowing last submesh to have more than required.
|
|
// Allocate indexes if not the right size, allowing last submesh to have more than required.
|
|
int[] indexes = submesh.indexes;
|
|
int[] indexes = submesh.indexes;
|
|
if (lastSubmesh ? (indexes.Length < indexCount) : (indexes.Length != indexCount)) {
|
|
if (lastSubmesh ? (indexes.Length < indexCount) : (indexes.Length != indexCount)) {
|
|
submesh.indexes = indexes = new int[indexCount];
|
|
submesh.indexes = indexes = new int[indexCount];
|
|
submesh.indexCount = 0;
|
|
submesh.indexCount = 0;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ // Last submesh may have more indices than required, so zero indexes to the end.
|
|
|
|
+ if (lastSubmesh && submesh.indexCount != indexCount) {
|
|
|
|
+ submesh.indexCount = indexCount;
|
|
|
|
+ for (int i = indexCount, n = indexes.Length; i < n; i++)
|
|
|
|
+ indexes[i] = 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
// Set indexes if not already set.
|
|
// Set indexes if not already set.
|
|
if (submesh.firstVertex != vertexIndex || submesh.indexCount < indexCount) {
|
|
if (submesh.firstVertex != vertexIndex || submesh.indexCount < indexCount) {
|
|
submesh.indexCount = indexCount;
|
|
submesh.indexCount = indexCount;
|
|
@@ -286,13 +293,6 @@ public class SkeletonComponent : MonoBehaviour {
|
|
indexes[i + 5] = vertexIndex + 1;
|
|
indexes[i + 5] = vertexIndex + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- // Last submesh may have more indices than required, so zero indexes to the end.
|
|
|
|
- if (lastSubmesh && submesh.indexCount != indexCount) {
|
|
|
|
- submesh.indexCount = indexCount;
|
|
|
|
- for (int i = indexCount, n = indexes.Length; i < n; i++)
|
|
|
|
- indexes[i] = 0;
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
public virtual void OnEnable () {
|
|
public virtual void OnEnable () {
|