mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-22 10:16:01 +08:00
[unity] Fix disabling preprocessor defines.
This commit is contained in:
parent
0afe70ee9d
commit
1c5866a3a7
@ -28,6 +28,8 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#define SPINE_OPTIONAL_MATERIALOVERRIDE
|
||||||
|
|
||||||
// Contributed by: Lost Polygon
|
// Contributed by: Lost Polygon
|
||||||
|
|
||||||
using System;
|
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 (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 (skeletonRenderer != null) {
|
||||||
|
#if SPINE_OPTIONAL_MATERIALOVERRIDE
|
||||||
skeletonRenderer.CustomMaterialOverride.Clear();
|
skeletonRenderer.CustomMaterialOverride.Clear();
|
||||||
|
#endif
|
||||||
skeletonRenderer.CustomSlotMaterials.Clear();
|
skeletonRenderer.CustomSlotMaterials.Clear();
|
||||||
RemoveCustomMaterials();
|
RemoveCustomMaterials();
|
||||||
SetCustomMaterials();
|
SetCustomMaterials();
|
||||||
|
|||||||
@ -28,6 +28,8 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#define SPINE_OPTIONAL_MATERIALOVERRIDE
|
||||||
|
|
||||||
// Contributed by: Lost Polygon
|
// Contributed by: Lost Polygon
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
@ -40,8 +42,8 @@ namespace Spine.Unity.Modules {
|
|||||||
|
|
||||||
#region Inspector
|
#region Inspector
|
||||||
public SkeletonRenderer skeletonRenderer;
|
public SkeletonRenderer skeletonRenderer;
|
||||||
[SerializeField] List<SlotMaterialOverride> customSlotMaterials = new List<SlotMaterialOverride>();
|
[SerializeField] protected List<SlotMaterialOverride> customSlotMaterials = new List<SlotMaterialOverride>();
|
||||||
[SerializeField] List<AtlasMaterialOverride> customMaterialOverrides = new List<AtlasMaterialOverride>();
|
[SerializeField] protected List<AtlasMaterialOverride> customMaterialOverrides = new List<AtlasMaterialOverride>();
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
void Reset () {
|
void Reset () {
|
||||||
@ -115,6 +117,7 @@ namespace Spine.Unity.Modules {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SPINE_OPTIONAL_MATERIALOVERRIDE
|
||||||
for (int i = 0; i < customMaterialOverrides.Count; i++) {
|
for (int i = 0; i < customMaterialOverrides.Count; i++) {
|
||||||
AtlasMaterialOverride atlasMaterialOverride = customMaterialOverrides[i];
|
AtlasMaterialOverride atlasMaterialOverride = customMaterialOverrides[i];
|
||||||
if (atlasMaterialOverride.overrideDisabled)
|
if (atlasMaterialOverride.overrideDisabled)
|
||||||
@ -122,6 +125,7 @@ namespace Spine.Unity.Modules {
|
|||||||
|
|
||||||
skeletonRenderer.CustomMaterialOverride[atlasMaterialOverride.originalMaterial] = atlasMaterialOverride.replacementMaterial;
|
skeletonRenderer.CustomMaterialOverride[atlasMaterialOverride.originalMaterial] = atlasMaterialOverride.replacementMaterial;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoveCustomMaterialOverrides () {
|
void RemoveCustomMaterialOverrides () {
|
||||||
@ -130,9 +134,11 @@ namespace Spine.Unity.Modules {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SPINE_OPTIONAL_MATERIALOVERRIDE
|
||||||
for (int i = 0; i < customMaterialOverrides.Count; i++) {
|
for (int i = 0; i < customMaterialOverrides.Count; i++) {
|
||||||
AtlasMaterialOverride atlasMaterialOverride = customMaterialOverrides[i];
|
AtlasMaterialOverride atlasMaterialOverride = customMaterialOverrides[i];
|
||||||
Material currentMaterial;
|
Material currentMaterial;
|
||||||
|
|
||||||
if (!skeletonRenderer.CustomMaterialOverride.TryGetValue(atlasMaterialOverride.originalMaterial, out currentMaterial))
|
if (!skeletonRenderer.CustomMaterialOverride.TryGetValue(atlasMaterialOverride.originalMaterial, out currentMaterial))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -142,6 +148,7 @@ namespace Spine.Unity.Modules {
|
|||||||
|
|
||||||
skeletonRenderer.CustomMaterialOverride.Remove(atlasMaterialOverride.originalMaterial);
|
skeletonRenderer.CustomMaterialOverride.Remove(atlasMaterialOverride.originalMaterial);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnEnable applies the overrides at runtime, and when the editor loads.
|
// OnEnable applies the overrides at runtime, and when the editor loads.
|
||||||
|
|||||||
@ -28,6 +28,8 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#define SPINE_OPTIONAL_RENDEROVERRIDE
|
||||||
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Spine.Unity;
|
using Spine.Unity;
|
||||||
@ -45,8 +47,10 @@ namespace Spine.Unity.Modules {
|
|||||||
public SkeletonRenderer SkeletonRenderer {
|
public SkeletonRenderer SkeletonRenderer {
|
||||||
get { return skeletonRenderer; }
|
get { return skeletonRenderer; }
|
||||||
set {
|
set {
|
||||||
|
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
||||||
if (skeletonRenderer != null)
|
if (skeletonRenderer != null)
|
||||||
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
||||||
|
#endif
|
||||||
|
|
||||||
skeletonRenderer = value;
|
skeletonRenderer = value;
|
||||||
this.enabled = false; // Disable if nulled.
|
this.enabled = false; // Disable if nulled.
|
||||||
@ -72,8 +76,11 @@ namespace Spine.Unity.Modules {
|
|||||||
if (copiedBlock == null) copiedBlock = new MaterialPropertyBlock();
|
if (copiedBlock == null) copiedBlock = new MaterialPropertyBlock();
|
||||||
mainMeshRenderer = skeletonRenderer.GetComponent<MeshRenderer>();
|
mainMeshRenderer = skeletonRenderer.GetComponent<MeshRenderer>();
|
||||||
|
|
||||||
|
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
||||||
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
||||||
skeletonRenderer.GenerateMeshOverride += HandleRender;
|
skeletonRenderer.GenerateMeshOverride += HandleRender;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if UNITY_5_4_OR_NEWER
|
#if UNITY_5_4_OR_NEWER
|
||||||
if (copyMeshRendererFlags) {
|
if (copyMeshRendererFlags) {
|
||||||
@ -109,7 +116,9 @@ namespace Spine.Unity.Modules {
|
|||||||
|
|
||||||
void OnDisable () {
|
void OnDisable () {
|
||||||
if (skeletonRenderer == null) return;
|
if (skeletonRenderer == null) return;
|
||||||
|
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
||||||
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
skeletonRenderer.LateUpdate();
|
skeletonRenderer.LateUpdate();
|
||||||
@ -134,9 +143,14 @@ namespace Spine.Unity.Modules {
|
|||||||
var submeshInstructionsItems = submeshInstructions.Items;
|
var submeshInstructionsItems = submeshInstructions.Items;
|
||||||
int lastSubmeshInstruction = submeshInstructions.Count - 1;
|
int lastSubmeshInstruction = submeshInstructions.Count - 1;
|
||||||
|
|
||||||
|
#if SPINE_OPTIONAL_NORMALS
|
||||||
bool addNormals = skeletonRenderer.calculateNormals;
|
bool addNormals = skeletonRenderer.calculateNormals;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SPINE_OPTIONAL_SOLVETANGENTS
|
||||||
bool addTangents = skeletonRenderer.calculateTangents;
|
bool addTangents = skeletonRenderer.calculateTangents;
|
||||||
|
#endif
|
||||||
|
|
||||||
bool pmaVertexColors = skeletonRenderer.pmaVertexColors;
|
bool pmaVertexColors = skeletonRenderer.pmaVertexColors;
|
||||||
|
|
||||||
int rendererIndex = 0;
|
int rendererIndex = 0;
|
||||||
@ -145,8 +159,12 @@ namespace Spine.Unity.Modules {
|
|||||||
if (submeshInstructionsItems[si].forceSeparate || si == lastSubmeshInstruction) {
|
if (submeshInstructionsItems[si].forceSeparate || si == lastSubmeshInstruction) {
|
||||||
// Apply properties
|
// Apply properties
|
||||||
var meshGenerator = currentRenderer.MeshGenerator;
|
var meshGenerator = currentRenderer.MeshGenerator;
|
||||||
|
#if SPINE_OPTIONAL_NORMALS
|
||||||
meshGenerator.AddNormals = addNormals;
|
meshGenerator.AddNormals = addNormals;
|
||||||
|
#endif
|
||||||
|
#if SPINE_OPTIONAL_SOLVETANGENTS
|
||||||
meshGenerator.AddTangents = addTangents;
|
meshGenerator.AddTangents = addTangents;
|
||||||
|
#endif
|
||||||
meshGenerator.PremultiplyVertexColors = pmaVertexColors;
|
meshGenerator.PremultiplyVertexColors = pmaVertexColors;
|
||||||
if (copyPropertyBlock)
|
if (copyPropertyBlock)
|
||||||
currentRenderer.SetPropertyBlock(copiedBlock);
|
currentRenderer.SetPropertyBlock(copiedBlock);
|
||||||
|
|||||||
@ -316,7 +316,11 @@ namespace Spine.Unity {
|
|||||||
// Slot with a separator/new material will become the starting slot of the next new instruction.
|
// Slot with a separator/new material will become the starting slot of the next new instruction.
|
||||||
bool forceSeparate = (hasSeparators && separatorSlots.Contains(slot));
|
bool forceSeparate = (hasSeparators && separatorSlots.Contains(slot));
|
||||||
if (noRender) {
|
if (noRender) {
|
||||||
if (forceSeparate && vertexCount > 0 && this.generateMeshOverride != null) {
|
if (forceSeparate && vertexCount > 0
|
||||||
|
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
||||||
|
&& this.generateMeshOverride != null
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
workingSubmeshInstructions.Add(
|
workingSubmeshInstructions.Add(
|
||||||
new Spine.Unity.MeshGeneration.SubmeshInstruction {
|
new Spine.Unity.MeshGeneration.SubmeshInstruction {
|
||||||
skeleton = this.skeleton,
|
skeleton = this.skeleton,
|
||||||
@ -422,14 +426,16 @@ namespace Spine.Unity {
|
|||||||
|
|
||||||
// STEP 2. Update vertex buffer based on verts from the attachments. ============================================================
|
// STEP 2. Update vertex buffer based on verts from the attachments. ============================================================
|
||||||
// Uses values that were also stored in workingInstruction.
|
// 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
|
#if SPINE_OPTIONAL_NORMALS
|
||||||
|
bool vertexCountIncreased = ArraysMeshGenerator.EnsureSize(vertexCount, ref this.vertices, ref this.uvs, ref this.colors);
|
||||||
if (vertexCountIncreased && calculateNormals) {
|
if (vertexCountIncreased && calculateNormals) {
|
||||||
Vector3[] localNormals = this.normals = new Vector3[vertexCount];
|
Vector3[] localNormals = this.normals = new Vector3[vertexCount];
|
||||||
Vector3 normal = new Vector3(0, 0, -1);
|
Vector3 normal = new Vector3(0, 0, -1);
|
||||||
for (int i = 0; i < vertexCount; i++)
|
for (int i = 0; i < vertexCount; i++)
|
||||||
localNormals[i] = normal;
|
localNormals[i] = normal;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
ArraysMeshGenerator.EnsureSize(vertexCount, ref this.vertices, ref this.uvs, ref this.colors);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Vector3 meshBoundsMin;
|
Vector3 meshBoundsMin;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user