mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 15:24:55 +08:00
fix SubmeshRenderer
This commit is contained in:
parent
4057316a91
commit
7414476841
@ -63,7 +63,6 @@ public class SkeletonRenderer : MonoBehaviour {
|
||||
private MeshFilter meshFilter;
|
||||
private Mesh mesh1, mesh2;
|
||||
private bool useMesh1;
|
||||
private bool meshUpdateRequested;
|
||||
private float[] tempVertices = new float[8];
|
||||
private Vector3[] vertices;
|
||||
private Color32[] colors;
|
||||
@ -74,10 +73,6 @@ public class SkeletonRenderer : MonoBehaviour {
|
||||
private SkeletonUtilitySubmeshRenderer[] submeshRenderers;
|
||||
private LastState lastState = new LastState();
|
||||
|
||||
public void RequestMeshUpdate() {
|
||||
meshUpdateRequested = true;
|
||||
}
|
||||
|
||||
public virtual void Reset () {
|
||||
if (meshFilter != null)
|
||||
meshFilter.sharedMesh = null;
|
||||
@ -181,11 +176,12 @@ public class SkeletonRenderer : MonoBehaviour {
|
||||
}
|
||||
|
||||
public virtual void LateUpdate () {
|
||||
if (!valid || (!meshRenderer.enabled && !meshUpdateRequested))
|
||||
if (!valid)
|
||||
return;
|
||||
|
||||
// The force update request is only valid for one frame
|
||||
meshUpdateRequested = false;
|
||||
// Exit early if there is nothing to render
|
||||
if (!meshRenderer.enabled && submeshRenderers.Length == 0)
|
||||
return;
|
||||
|
||||
// Count vertices and submesh triangles.
|
||||
int vertexCount = 0;
|
||||
@ -456,7 +452,7 @@ public class SkeletonRenderer : MonoBehaviour {
|
||||
color.r = (byte)(r * slot.r * skinnedMeshAttachment.r * color.a);
|
||||
color.g = (byte)(g * slot.g * skinnedMeshAttachment.g * color.a);
|
||||
color.b = (byte)(b * slot.b * skinnedMeshAttachment.b * color.a);
|
||||
if (slot.data.blendMode == BlendMode.additive) color.a = 0;
|
||||
if (slot.data.blendMode == BlendMode.additive) color.a = 0;
|
||||
|
||||
float[] meshUVs = skinnedMeshAttachment.uvs;
|
||||
float z = i * zSpacing;
|
||||
@ -549,14 +545,14 @@ public class SkeletonRenderer : MonoBehaviour {
|
||||
addSubmeshArgumentsTemp.CopyTo(addSubmeshArgumentsCurrentMesh.Items);
|
||||
|
||||
if (submeshRenderers.Length > 0) {
|
||||
for (int i = 0; i < submeshRenderers.Length; i++) {
|
||||
SkeletonUtilitySubmeshRenderer submeshRenderer = submeshRenderers[i];
|
||||
if (submeshRenderer.submeshIndex < sharedMaterials.Length) {
|
||||
submeshRenderer.SetMesh(meshRenderer, useMesh1 ? mesh1 : mesh2, sharedMaterials[submeshRenderer.submeshIndex]);
|
||||
} else {
|
||||
submeshRenderer.GetComponent<Renderer>().enabled = false;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < submeshRenderers.Length; i++) {
|
||||
SkeletonUtilitySubmeshRenderer submeshRenderer = submeshRenderers[i];
|
||||
if (submeshRenderer.submeshIndex < sharedMaterials.Length) {
|
||||
submeshRenderer.SetMesh(meshRenderer, useMesh1 ? mesh1 : mesh2, sharedMaterials[submeshRenderer.submeshIndex]);
|
||||
} else {
|
||||
submeshRenderer.GetComponent<Renderer>().enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
useMesh1 = !useMesh1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user