protected virtual void InitialiseHighlighter() { VRTK_BaseHighlighter existingHighlighter = VRTK_BaseHighlighter.GetActiveHighlighter(gameObject); //If no highlighter is found on the GameObject then create the default one if (existingHighlighter == null) { highlightObject.AddComponent <VRTK_MaterialColorSwapHighlighter>(); } else { VRTK_SharedMethods.CloneComponent(existingHighlighter, highlightObject); } //Initialise highlighter and set highlight colour objectHighlighter = highlightObject.GetComponent <VRTK_BaseHighlighter>(); objectHighlighter.unhighlightOnDisable = false; objectHighlighter.Initialise(highlightColor); objectHighlighter.Highlight(highlightColor); //if the object highlighter is using a cloned object then disable the created highlight object's renderers if (objectHighlighter.UsesClonedObject()) { Renderer[] renderers = GetComponentsInChildren <Renderer>(true); for (int i = 0; i < renderers.Length; i++) { if (!VRTK_PlayerObject.IsPlayerObject(renderers[i].gameObject, VRTK_PlayerObject.ObjectTypes.Highlighter)) { renderers[i].enabled = false; } } } }
private void InitialiseHighlighter() { var existingHighlighter = Utilities.GetActiveHighlighter(gameObject); //If no highlighter is found on the GameObject then create the default one if (existingHighlighter == null) { highlightObject.AddComponent <VRTK_MaterialColorSwapHighlighter>(); } else { Utilities.CloneComponent(existingHighlighter, highlightObject); } //Initialise highlighter and set highlight colour objectHighlighter = highlightObject.GetComponent <VRTK_BaseHighlighter>(); objectHighlighter.Initialise(highlightColor); objectHighlighter.Highlight(highlightColor); //if the object highlighter is using a cloned object then disable the created highlight object's renderers if (objectHighlighter.UsesClonedObject()) { foreach (var renderer in GetComponentsInChildren <Renderer>(true)) { var check = renderer.GetComponent <VRTK_PlayerObject>(); if (!check || check.objectType != VRTK_PlayerObject.ObjectTypes.Highlighter) { renderer.enabled = false; } } } }