浏览代码

[unity] Fix disabling preprocessor defines.

pharan 8 年之前
父节点
当前提交
1c5866a3a7

+ 4 - 0
spine-unity/Assets/spine-unity/Modules/CustomMaterials/Editor/SkeletonRendererCustomMaterialsInspector.cs

@@ -28,6 +28,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
 
+#define SPINE_OPTIONAL_MATERIALOVERRIDE
+
 // Contributed by: Lost Polygon
 
 using System;
@@ -136,7 +138,9 @@ namespace Spine.Unity.Editor {
 
 			if (SpineInspectorUtility.LargeCenteredButton(new GUIContent("Clear and Reapply Changes", "Removes all non-serialized overrides in the SkeletonRenderer and reapplies the overrides on this component."))) {
 				if (skeletonRenderer != null) {
+					#if SPINE_OPTIONAL_MATERIALOVERRIDE
 					skeletonRenderer.CustomMaterialOverride.Clear();
+					#endif
 					skeletonRenderer.CustomSlotMaterials.Clear();
 					RemoveCustomMaterials();
 					SetCustomMaterials();

+ 10 - 3
spine-unity/Assets/spine-unity/Modules/CustomMaterials/SkeletonRendererCustomMaterials.cs

@@ -28,6 +28,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
 
+#define SPINE_OPTIONAL_MATERIALOVERRIDE
+
 // Contributed by: Lost Polygon
 
 using System;
@@ -40,8 +42,8 @@ namespace Spine.Unity.Modules {
 
 		#region Inspector
 		public SkeletonRenderer skeletonRenderer;
-		[SerializeField] List<SlotMaterialOverride> customSlotMaterials = new List<SlotMaterialOverride>();
-		[SerializeField] List<AtlasMaterialOverride> customMaterialOverrides = new List<AtlasMaterialOverride>();
+		[SerializeField] protected List<SlotMaterialOverride> customSlotMaterials = new List<SlotMaterialOverride>();
+		[SerializeField] protected List<AtlasMaterialOverride> customMaterialOverrides = new List<AtlasMaterialOverride>();
 
 		#if UNITY_EDITOR
 		void Reset () {
@@ -115,6 +117,7 @@ namespace Spine.Unity.Modules {
 				return;
 			}
 
+			#if SPINE_OPTIONAL_MATERIALOVERRIDE
 			for (int i = 0; i < customMaterialOverrides.Count; i++) {
 				AtlasMaterialOverride atlasMaterialOverride = customMaterialOverrides[i];
 				if (atlasMaterialOverride.overrideDisabled)
@@ -122,6 +125,7 @@ namespace Spine.Unity.Modules {
 
 				skeletonRenderer.CustomMaterialOverride[atlasMaterialOverride.originalMaterial] = atlasMaterialOverride.replacementMaterial;
 			}
+			#endif
 		}
 
 		void RemoveCustomMaterialOverrides () {
@@ -130,18 +134,21 @@ namespace Spine.Unity.Modules {
 				return;
 			}
 
+			#if SPINE_OPTIONAL_MATERIALOVERRIDE
 			for (int i = 0; i < customMaterialOverrides.Count; i++) {
 				AtlasMaterialOverride atlasMaterialOverride = customMaterialOverrides[i];
 				Material currentMaterial;
+
 				if (!skeletonRenderer.CustomMaterialOverride.TryGetValue(atlasMaterialOverride.originalMaterial, out currentMaterial))
 					continue;
-
+				
 				// Do not revert the material if it was changed by something else
 				if (currentMaterial != atlasMaterialOverride.replacementMaterial)
 					continue;
 
 				skeletonRenderer.CustomMaterialOverride.Remove(atlasMaterialOverride.originalMaterial);
 			}
+			#endif
 		}
 			
 		// OnEnable applies the overrides at runtime, and when the editor loads.

+ 19 - 1
spine-unity/Assets/spine-unity/Modules/SkeletonRenderSeparator/SkeletonRenderSeparator.cs

@@ -28,6 +28,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
 
+#define SPINE_OPTIONAL_RENDEROVERRIDE
+
 using UnityEngine;
 using System.Collections.Generic;
 using Spine.Unity;
@@ -45,8 +47,10 @@ namespace Spine.Unity.Modules {
 		public SkeletonRenderer SkeletonRenderer {
 			get { return skeletonRenderer; }
 			set {
+				#if SPINE_OPTIONAL_RENDEROVERRIDE
 				if (skeletonRenderer != null)
 					skeletonRenderer.GenerateMeshOverride -= HandleRender;
+				#endif
 				
 				skeletonRenderer = value;
 				this.enabled = false; // Disable if nulled.
@@ -72,8 +76,11 @@ namespace Spine.Unity.Modules {
 			if (copiedBlock == null) copiedBlock = new MaterialPropertyBlock();	
 			mainMeshRenderer = skeletonRenderer.GetComponent<MeshRenderer>();
 
+			#if SPINE_OPTIONAL_RENDEROVERRIDE
 			skeletonRenderer.GenerateMeshOverride -= HandleRender;
 			skeletonRenderer.GenerateMeshOverride += HandleRender;
+			#endif
+
 
 			#if UNITY_5_4_OR_NEWER
 			if (copyMeshRendererFlags) {
@@ -109,7 +116,9 @@ namespace Spine.Unity.Modules {
 
 		void OnDisable () {
 			if (skeletonRenderer == null) return;
+			#if SPINE_OPTIONAL_RENDEROVERRIDE
 			skeletonRenderer.GenerateMeshOverride -= HandleRender;
+			#endif
 
 			#if UNITY_EDITOR
 			skeletonRenderer.LateUpdate();
@@ -134,9 +143,14 @@ namespace Spine.Unity.Modules {
 			var submeshInstructionsItems = submeshInstructions.Items;
 			int lastSubmeshInstruction = submeshInstructions.Count - 1;
 
-
+			#if SPINE_OPTIONAL_NORMALS
 			bool addNormals = skeletonRenderer.calculateNormals;
+			#endif
+
+			#if SPINE_OPTIONAL_SOLVETANGENTS
 			bool addTangents = skeletonRenderer.calculateTangents;
+			#endif
+
 			bool pmaVertexColors = skeletonRenderer.pmaVertexColors;
 
 			int rendererIndex = 0;
@@ -145,8 +159,12 @@ namespace Spine.Unity.Modules {
 				if (submeshInstructionsItems[si].forceSeparate || si == lastSubmeshInstruction) {
 					// Apply properties
 					var meshGenerator = currentRenderer.MeshGenerator;
+					#if SPINE_OPTIONAL_NORMALS
 					meshGenerator.AddNormals = addNormals;
+					#endif
+					#if SPINE_OPTIONAL_SOLVETANGENTS
 					meshGenerator.AddTangents = addTangents;
+					#endif
 					meshGenerator.PremultiplyVertexColors = pmaVertexColors;
 					if (copyPropertyBlock)
 						currentRenderer.SetPropertyBlock(copiedBlock);

+ 8 - 2
spine-unity/Assets/spine-unity/SkeletonRenderer.cs

@@ -316,7 +316,11 @@ namespace Spine.Unity {
 				// Slot with a separator/new material will become the starting slot of the next new instruction.
 				bool forceSeparate = (hasSeparators && separatorSlots.Contains(slot));
 				if (noRender) {
-					if (forceSeparate && vertexCount > 0 && this.generateMeshOverride != null) {
+					if (forceSeparate && vertexCount > 0
+						#if SPINE_OPTIONAL_RENDEROVERRIDE
+						&& this.generateMeshOverride != null
+						#endif
+					) {
 						workingSubmeshInstructions.Add(
 							new Spine.Unity.MeshGeneration.SubmeshInstruction {
 								skeleton = this.skeleton,
@@ -422,14 +426,16 @@ namespace Spine.Unity {
 
 			// STEP 2. Update vertex buffer based on verts from the attachments.  ============================================================
 			// Uses values that were also stored in workingInstruction.
-			bool vertexCountIncreased = ArraysMeshGenerator.EnsureSize(vertexCount, ref this.vertices, ref this.uvs, ref this.colors);
 			#if SPINE_OPTIONAL_NORMALS
+			bool vertexCountIncreased = ArraysMeshGenerator.EnsureSize(vertexCount, ref this.vertices, ref this.uvs, ref this.colors);
 			if (vertexCountIncreased && calculateNormals) {
 				Vector3[] localNormals = this.normals = new Vector3[vertexCount];
 				Vector3 normal = new Vector3(0, 0, -1);
 				for (int i = 0; i < vertexCount; i++)
 					localNormals[i] = normal;
 			}
+			#else
+			ArraysMeshGenerator.EnsureSize(vertexCount, ref this.vertices, ref this.uvs, ref this.colors);
 			#endif
 
 			Vector3 meshBoundsMin;