From 2a3d5245d9642a537c873b40b768f1756deab689 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Mon, 8 Mar 2021 12:51:03 +0100 Subject: [PATCH 1/5] [unity] Added null check for SkeletonRenderer.GenerateMeshOverride as reported on the forum. --- .../Runtime/spine-unity/Components/SkeletonRenderer.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs index bf442ce19..c68f50e65 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs @@ -186,14 +186,16 @@ namespace Spine.Unity { generateMeshOverride += value; if (disableRenderingOnOverride && generateMeshOverride != null) { Initialize(false); - meshRenderer.enabled = false; + if (meshRenderer) + meshRenderer.enabled = false; } } remove { generateMeshOverride -= value; if (disableRenderingOnOverride && generateMeshOverride == null) { Initialize(false); - meshRenderer.enabled = true; + if (meshRenderer) + meshRenderer.enabled = true; } } } From 055a2d993dead5091c3735ab65d5650acb76be24 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Mon, 8 Mar 2021 18:09:31 +0100 Subject: [PATCH 2/5] [unity] Fixed incorrect warnings being issued at unused leftover PMA material keyword. Now when the keyword is unused, no warning is issued. Closes #1856. --- .../spine-unity/Utility/MaterialChecks.cs | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs index f0a534c3b..68ec0d9f4 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs @@ -251,8 +251,11 @@ namespace Spine.Unity { } static bool IsPMAMaterial (Material material) { - return (material.HasProperty(STRAIGHT_ALPHA_PARAM_ID) && material.GetInt(STRAIGHT_ALPHA_PARAM_ID) == 0) || - material.IsKeywordEnabled(ALPHAPREMULTIPLY_ON_KEYWORD); + bool usesAlphaPremultiplyKeyword = IsSpriteShader(material); + if (usesAlphaPremultiplyKeyword) + return material.IsKeywordEnabled(ALPHAPREMULTIPLY_ON_KEYWORD); + else + return material.HasProperty(STRAIGHT_ALPHA_PARAM_ID) && material.GetInt(STRAIGHT_ALPHA_PARAM_ID) == 0; } static bool IsURP3DMaterial (Material material) { @@ -280,14 +283,18 @@ namespace Spine.Unity { break; } } - bool isShaderWithMeshNormals = - material.shader.name.Contains("Spine/Sprite/Pixel Lit") || - material.shader.name.Contains("Spine/Sprite/Vertex Lit") || - material.shader.name.Contains("2D/Spine/Sprite") || // covers both URP and LWRP - material.shader.name.Contains("Pipeline/Spine/Sprite"); // covers both URP and LWRP + bool isShaderWithMeshNormals = IsSpriteShader(material); return isShaderWithMeshNormals && !anyFixedNormalSet; } + static bool IsSpriteShader (Material material) { + string shaderName = material.shader.name; + return shaderName.Contains("Spine/Sprite/Pixel Lit") || + shaderName.Contains("Spine/Sprite/Vertex Lit") || + shaderName.Contains("2D/Spine/Sprite") || // covers both URP and LWRP + shaderName.Contains("Pipeline/Spine/Sprite"); // covers both URP and LWRP + } + static bool RequiresTintBlack (Material material) { bool isTintBlackShader = material.shader.name.Contains("Spine") && From 7cd2c1244393642a36d6e84bdd5616ebb9a9d66d Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Tue, 9 Mar 2021 12:06:02 +0100 Subject: [PATCH 3/5] [unity] Fixed SkeletonGraphic Skeleton property not calling Initialize(), as SkeletonRenderer does. Closes #1858. --- .../Runtime/spine-unity/Components/SkeletonGraphic.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs index 9e4f43f42..d01fb7523 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs @@ -341,7 +341,15 @@ namespace Spine.Unity { #region API protected Skeleton skeleton; - public Skeleton Skeleton { get { return skeleton; } set { skeleton = value; } } + public Skeleton Skeleton { + get { + Initialize(false); + return skeleton; + } + set { + skeleton = value; + } + } public SkeletonData SkeletonData { get { return skeleton == null ? null : skeleton.data; } } public bool IsValid { get { return skeleton != null; } } @@ -474,7 +482,6 @@ namespace Spine.Unity { public void Initialize (bool overwrite) { if (this.IsValid && !overwrite) return; - // Make sure none of the stuff is null if (this.skeletonDataAsset == null) return; var skeletonData = this.skeletonDataAsset.GetSkeletonData(false); if (skeletonData == null) return; From 6c34d1f0a00159fcb88912551f00a34e7938f15a Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Wed, 10 Mar 2021 14:42:04 +0100 Subject: [PATCH 4/5] [unity] Fixed Timeline track displaying `None` as SkeletonAnimation reference on Unity 2020.1+. Fixed by increasing minimum Timeline dependency version to 1.2.10 (still compatible with the same Unity versions), as this issue shows only until 1.2.9. Closes #1855. --- .../Modules/com.esotericsoftware.spine.timeline/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json b/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json index d4ebe02cc..62246d155 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json +++ b/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json @@ -10,7 +10,7 @@ "url": "http://esotericsoftware.com/" }, "dependencies": { - "com.unity.timeline": "1.0.0" + "com.unity.timeline": "1.2.10" }, "keywords": [ "spine", From 305bb21615c11478f37f28978e313c04679aebaf Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Wed, 10 Mar 2021 14:48:50 +0100 Subject: [PATCH 5/5] [unity] minor: increased Timeline UPM package version number since dependency versions were increased in last commit. --- .../Modules/com.esotericsoftware.spine.timeline/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json b/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json index 62246d155..2687afa2d 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json +++ b/spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json @@ -2,7 +2,7 @@ "name": "com.esotericsoftware.spine.timeline", "displayName": "Spine Timeline Extensions", "description": "This plugin provides integration of spine-unity for the Unity Timeline.\n\nPrerequisites:\nIt requires a working installation of the spine-unity runtime, version 3.8 from 2019-10-03 or newer.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)", - "version": "3.8.2", + "version": "3.8.3", "unity": "2018.3", "author": { "name": "Esoteric Software",