浏览代码

[unity] Fixed endless loop in Unity Editor when updating assets due to stencil parameter auto-update. Closes #1371.

Harald Csaszar 6 年之前
父节点
当前提交
5f95a5ddd9
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs

+ 6 - 1
spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs

@@ -122,6 +122,9 @@ namespace Spine.Unity {
 		public const UnityEngine.Rendering.CompareFunction STENCIL_COMP_MASKINTERACTION_VISIBLE_INSIDE = UnityEngine.Rendering.CompareFunction.LessEqual;
 		/// <summary>Shader property value used as Stencil comparison function for <see cref="SpriteMaskInteraction.VisibleOutsideMask"/>.</summary>
 		public const UnityEngine.Rendering.CompareFunction STENCIL_COMP_MASKINTERACTION_VISIBLE_OUTSIDE = UnityEngine.Rendering.CompareFunction.Greater;
+		#if UNITY_EDITOR
+		private static bool haveStencilParametersBeenFixed = false;
+		#endif
 		#endif // #if BUILT_IN_SPRITE_MASK_COMPONENT
 		#endregion
 
@@ -532,8 +535,10 @@ namespace Spine.Unity {
 
 		#if UNITY_EDITOR
 		private void EditorFixStencilCompParameters() {
-			if (HasAnyStencilComp0Material())
+			if (!haveStencilParametersBeenFixed && HasAnyStencilComp0Material()) {
+				haveStencilParametersBeenFixed = true;
 				FixAllProjectMaterialsStencilCompParameters();
+			}
 		}
 
 		private void FixAllProjectMaterialsStencilCompParameters() {