From f75adfaca855678ef11c0bdd1bd8a207997bd346 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Fri, 27 Mar 2020 19:29:52 +0100 Subject: [PATCH] [unity] Improved Editor behaviour of RenderExistingMesh component. Removed unnecessary SkeletonGraphic codeparts from it. --- .../Sample Components/RenderExistingMesh.cs | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs index d268708ea..c4df6b00c 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs @@ -94,24 +94,29 @@ namespace Spine.Unity.Examples { skeletonRenderer.OnMeshAndMaterialsUpdated += UpdateOnCallback; updateViaSkeletonCallback = true; } - var skeletonGraphic = referenceRenderer.GetComponent(); - if (skeletonGraphic) { - skeletonGraphic.OnMeshAndMaterialsUpdated -= UpdateOnCallback; - skeletonGraphic.OnMeshAndMaterialsUpdated += UpdateOnCallback; - updateViaSkeletonCallback = true; - } - referenceMeshFilter = referenceRenderer.GetComponent(); ownRenderer = this.GetComponent(); ownMeshFilter = this.GetComponent(); - for (int i = 0; i < replacementMaterials.Length; ++i) { - var entry = replacementMaterials[i]; - replacementMaterialDict[entry.originalMaterial] = entry.replacementMaterial; - } + InitializeDict(); } + #if UNITY_EDITOR + private void Update () { + if (!Application.isPlaying) { + InitializeDict(); + } + } + #endif + void LateUpdate () { + #if UNITY_EDITOR + if (!Application.isPlaying) { + UpdateMaterials(); + return; + } + #endif + if (updateViaSkeletonCallback) return; UpdateMaterials(); @@ -121,10 +126,6 @@ namespace Spine.Unity.Examples { UpdateMaterials(); } - void UpdateOnCallback (SkeletonGraphic r) { - UpdateMaterials(); - } - void UpdateMaterials () { ownMeshFilter.sharedMesh = referenceMeshFilter.sharedMesh; @@ -140,5 +141,12 @@ namespace Spine.Unity.Examples { } ownRenderer.sharedMaterials = sharedMaterials; } + + void InitializeDict () { + for (int i = 0; i < replacementMaterials.Length; ++i) { + var entry = replacementMaterials[i]; + replacementMaterialDict[entry.originalMaterial] = entry.replacementMaterial; + } + } } }