From 03be66d92956d79bafc9b15f4dea4bc23b215824 Mon Sep 17 00:00:00 2001 From: Gustavo Quiroz Date: Fri, 18 Sep 2020 13:25:27 +0200 Subject: [PATCH] fix: highlighted objects recover their renderer when they become disabled (#65) --- .../Highlighters/InteractableHighlighter.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Runtime/Interaction/Highlighters/InteractableHighlighter.cs b/Runtime/Interaction/Highlighters/InteractableHighlighter.cs index 8247908..e40650f 100644 --- a/Runtime/Interaction/Highlighters/InteractableHighlighter.cs +++ b/Runtime/Interaction/Highlighters/InteractableHighlighter.cs @@ -72,6 +72,7 @@ public bool AllowOnUseHighlight [SerializeField] private Color useHighlightColor = new Color32(0, 255, 0, 50); + private bool isBeingHighlighted; private Material colorTouchMaterial; private Material colorGrabMaterial; private Material colorUseMaterial; @@ -98,6 +99,14 @@ private void OnEnable() private void OnDisable() { + if (isBeingHighlighted) + { + ReenableRenderers(cachedSkinnedRenderers); + ReenableRenderers(cachedMeshRenderers); + + externalHighlights.Clear(); + } + interactableObject.onFirstHoverEnter.RemoveListener(OnTouched); interactableObject.onSelectEnter.RemoveListener(OnGrabbed); interactableObject.onSelectExit.RemoveListener(OnReleased); @@ -212,6 +221,7 @@ private IEnumerator Highlight(Material highlightMaterial, Func shouldConti while (shouldContinueHighlighting()) { + isBeingHighlighted = true; DisableRenders(cachedSkinnedRenderers); DisableRenders(cachedMeshRenderers); @@ -228,6 +238,7 @@ private IEnumerator Highlight(Material highlightMaterial, Func shouldConti yield return null; } + isBeingHighlighted = false; ReenableRenderers(cachedSkinnedRenderers); ReenableRenderers(cachedMeshRenderers);