Browse Source

[unity] Preventing errors due to accidentally enabling TK2D defines via Spine Preferences, now only showing preferences section when TK2D is installed. Closes #1612.

Harald Csaszar 5 years ago
parent
commit
0ecc597a17

+ 5 - 0
spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/BuildSettings.cs

@@ -57,6 +57,11 @@ namespace Spine.Unity.Editor {
 		public static class SpineTK2DEditorUtility {
 		public static class SpineTK2DEditorUtility {
 			const string SPINE_TK2D_DEFINE = "SPINE_TK2D";
 			const string SPINE_TK2D_DEFINE = "SPINE_TK2D";
 
 
+			internal static bool IsTK2DInstalled () {
+				return (Shader.Find("tk2d/SolidVertexColor") != null ||
+					Shader.Find("tk2d/AdditiveVertexColor") != null);
+			}
+
 			internal static void EnableTK2D () {
 			internal static void EnableTK2D () {
 				SpineBuildEnvUtility.DisableSpineAsmdefFiles();
 				SpineBuildEnvUtility.DisableSpineAsmdefFiles();
 				SpineBuildEnvUtility.EnableBuildDefine(SPINE_TK2D_DEFINE);
 				SpineBuildEnvUtility.EnableBuildDefine(SPINE_TK2D_DEFINE);

+ 10 - 8
spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Preferences.cs

@@ -264,14 +264,16 @@ namespace Spine.Unity.Editor {
 					}
 					}
 				}
 				}
 
 
-				GUILayout.Space(20);
-				EditorGUILayout.LabelField("3rd Party Settings", EditorStyles.boldLabel);
-				using (new GUILayout.HorizontalScope()) {
-					EditorGUILayout.PrefixLabel("Define TK2D");
-					if (GUILayout.Button("Enable", GUILayout.Width(64)))
-						SpineTK2DEditorUtility.EnableTK2D();
-					if (GUILayout.Button("Disable", GUILayout.Width(64)))
-						SpineTK2DEditorUtility.DisableTK2D();
+				if (SpineTK2DEditorUtility.IsTK2DInstalled()) {
+					GUILayout.Space(20);
+					EditorGUILayout.LabelField("3rd Party Settings", EditorStyles.boldLabel);
+					using (new GUILayout.HorizontalScope()) {
+						EditorGUILayout.PrefixLabel("Define TK2D");
+						if (GUILayout.Button("Enable", GUILayout.Width(64)))
+							SpineTK2DEditorUtility.EnableTK2D();
+						if (GUILayout.Button("Disable", GUILayout.Width(64)))
+							SpineTK2DEditorUtility.DisableTK2D();
+					}
 				}
 				}
 
 
 				GUILayout.Space(20);
 				GUILayout.Space(20);

+ 11 - 9
spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SpinePreferences.cs

@@ -97,7 +97,7 @@ namespace Spine.Unity.Editor {
 		// Timeline extension module
 		// Timeline extension module
 		public const bool DEFAULT_TIMELINE_USE_BLEND_DURATION = true;
 		public const bool DEFAULT_TIMELINE_USE_BLEND_DURATION = true;
 		public bool timelineUseBlendDuration = DEFAULT_TIMELINE_USE_BLEND_DURATION;
 		public bool timelineUseBlendDuration = DEFAULT_TIMELINE_USE_BLEND_DURATION;
-		
+
 #if NEW_PREFERENCES_SETTINGS_PROVIDER
 #if NEW_PREFERENCES_SETTINGS_PROVIDER
 		public static void Load () {
 		public static void Load () {
 			GetOrCreateSettings();
 			GetOrCreateSettings();
@@ -181,14 +181,16 @@ namespace Spine.Unity.Editor {
 					}
 					}
 				}
 				}
 
 
-				GUILayout.Space(20);
-				EditorGUILayout.LabelField("3rd Party Settings", EditorStyles.boldLabel);
-				using (new GUILayout.HorizontalScope()) {
-					EditorGUILayout.PrefixLabel("Define TK2D");
-					if (GUILayout.Button("Enable", GUILayout.Width(64)))
-						SpineEditorUtilities.SpineTK2DEditorUtility.EnableTK2D();
-					if (GUILayout.Button("Disable", GUILayout.Width(64)))
-						SpineEditorUtilities.SpineTK2DEditorUtility.DisableTK2D();
+				if (SpineEditorUtilities.SpineTK2DEditorUtility.IsTK2DInstalled()) {
+					GUILayout.Space(20);
+					EditorGUILayout.LabelField("3rd Party Settings", EditorStyles.boldLabel);
+					using (new GUILayout.HorizontalScope()) {
+						EditorGUILayout.PrefixLabel("Define TK2D");
+						if (GUILayout.Button("Enable", GUILayout.Width(64)))
+							SpineEditorUtilities.SpineTK2DEditorUtility.EnableTK2D();
+						if (GUILayout.Button("Disable", GUILayout.Width(64)))
+							SpineEditorUtilities.SpineTK2DEditorUtility.DisableTK2D();
+					}
 				}
 				}
 
 
 				GUILayout.Space(20);
 				GUILayout.Space(20);