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; } } } }
private void AddHighlighterToElement(Transform element, VRTK_BaseHighlighter parentHighlighter, VRTK_BaseHighlighter overrideHighlighter) { if (element) { var highlighter = (overrideHighlighter != null ? overrideHighlighter : parentHighlighter); VRTK_BaseHighlighter clonedHighlighter = (VRTK_BaseHighlighter)Utilities.CloneComponent(highlighter, element.gameObject); clonedHighlighter.Initialise(null, highlighterOptions); } }