From 238818dd13e2fc122e7d56c8b7456beefb3af5cf Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Thu, 7 Sep 2023 13:12:24 +0200 Subject: [PATCH 1/2] [unity] Fixed ShaderGraph shaders not displayed at PartsRenderers on Unity 2023.1. Closes #2358. --- .../SkeletonRenderSeparator/SkeletonRenderSeparator.cs | 6 +++--- spine-unity/Assets/Spine/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs index af83f6d34..15471a916 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs @@ -207,7 +207,8 @@ namespace Spine.Unity { int rendererCount = partsRenderers.Count; if (rendererCount <= 0) return; - if (copyPropertyBlock) + bool assignPropertyBlock = this.copyPropertyBlock && mainMeshRenderer.HasPropertyBlock(); + if (assignPropertyBlock) mainMeshRenderer.GetPropertyBlock(copiedBlock); MeshGenerator.Settings settings = new MeshGenerator.Settings { @@ -234,9 +235,8 @@ namespace Spine.Unity { MeshGenerator meshGenerator = currentRenderer.MeshGenerator; meshGenerator.settings = settings; - if (copyPropertyBlock) + if (assignPropertyBlock) currentRenderer.SetPropertyBlock(copiedBlock); - // Render currentRenderer.RenderParts(instruction.submeshInstructions, start, si + 1); diff --git a/spine-unity/Assets/Spine/package.json b/spine-unity/Assets/Spine/package.json index c265ab1bf..0ab277996 100644 --- a/spine-unity/Assets/Spine/package.json +++ b/spine-unity/Assets/Spine/package.json @@ -2,7 +2,7 @@ "name": "com.esotericsoftware.spine.spine-unity", "displayName": "spine-unity Runtime", "description": "This plugin provides the spine-unity runtime core.", - "version": "4.1.19", + "version": "4.1.20", "unity": "2018.3", "author": { "name": "Esoteric Software", From a740fae00950a1c6accf98e8375b2df36ee317dc Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Thu, 7 Sep 2023 13:28:56 +0200 Subject: [PATCH 2/2] [unity] Fixed compile error of previous commit 238818d on Unity 2017. See #2358. --- .../SkeletonRenderSeparator/SkeletonRenderSeparator.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs index 15471a916..627647599 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs @@ -30,6 +30,11 @@ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER #define NEW_PREFAB_SYSTEM #endif + +#if UNITY_2018_1_OR_NEWER +#define HAS_PROPERTY_BLOCK_QUERY +#endif + #define SPINE_OPTIONAL_RENDEROVERRIDE using System.Collections.Generic; @@ -207,7 +212,11 @@ namespace Spine.Unity { int rendererCount = partsRenderers.Count; if (rendererCount <= 0) return; +#if HAS_PROPERTY_BLOCK_QUERY bool assignPropertyBlock = this.copyPropertyBlock && mainMeshRenderer.HasPropertyBlock(); +#else + bool assignPropertyBlock = this.copyPropertyBlock; +#endif if (assignPropertyBlock) mainMeshRenderer.GetPropertyBlock(copiedBlock);