mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 23:34:53 +08:00
[unity] Fixed SkeletonGraphic with Multiple Canvas Renderers ignoring Mask when CustomMaterialOverride or blend modes are active. Closes #1948.
This commit is contained in:
parent
d6df0725a2
commit
6cd3e54b83
@ -244,8 +244,8 @@ namespace Spine.Unity.Editor {
|
||||
} else if (meshRendersIncorrectlyWithSingleRenderer) {
|
||||
using (new SpineInspectorUtility.BoxScope()) {
|
||||
meshGeneratorSettings.isExpanded = true;
|
||||
EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("This mesh uses multiple atlas pages. You\n" +
|
||||
"need to enable 'Multiple Canvas Renderers'\n" +
|
||||
EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("This mesh uses multiple atlas pages or blend modes.\n" +
|
||||
"You need to enable 'Multiple Canvas Renderers'\n" +
|
||||
"for correct rendering. Consider packing\n" +
|
||||
"attachments to a single atlas page if possible.", Icons.warning), GUILayout.Height(60), GUILayout.Width(340));
|
||||
}
|
||||
|
||||
@ -678,7 +678,7 @@ namespace Spine.Unity {
|
||||
meshGenerator.Begin();
|
||||
meshGenerator.AddSubmesh(submeshInstructionItem);
|
||||
|
||||
var targetMesh = meshesItems[i];
|
||||
Mesh targetMesh = meshesItems[i];
|
||||
meshGenerator.ScaleVertexData(scale);
|
||||
if (OnPostProcessVertices != null) OnPostProcessVertices.Invoke(this.meshGenerator.Buffers);
|
||||
meshGenerator.FillVertexData(targetMesh);
|
||||
@ -703,6 +703,7 @@ namespace Spine.Unity {
|
||||
parent = separatorParts[++separatorSlotGroupIndex];
|
||||
}
|
||||
|
||||
SkeletonSubmeshGraphic submeshGraphic = submeshGraphics[i];
|
||||
if (useOriginalTextureAndMaterial) {
|
||||
Texture usedTexture = submeshMaterial.mainTexture;
|
||||
if (!hasBlendModeMaterials)
|
||||
@ -724,6 +725,7 @@ namespace Spine.Unity {
|
||||
else if (blendMode == BlendMode.Screen && screenMaterial)
|
||||
usedMaterial = screenMaterial;
|
||||
|
||||
usedMaterial = submeshGraphic.GetModifiedMaterial(usedMaterial);
|
||||
canvasRenderer.SetMaterial(usedMaterial, usedTexture);
|
||||
#if HAS_CULL_TRANSPARENT_MESH
|
||||
canvasRenderer.cullTransparentMesh = allowCullTransparentMesh ?
|
||||
@ -738,6 +740,8 @@ namespace Spine.Unity {
|
||||
usedMaterial = material;
|
||||
if (!customTextureOverride.TryGetValue(originalTexture, out usedTexture))
|
||||
usedTexture = originalTexture;
|
||||
|
||||
usedMaterial = submeshGraphic.GetModifiedMaterial(usedMaterial);
|
||||
canvasRenderer.SetMaterial(usedMaterial, usedTexture);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user