コード例 #1
0
        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;
                    }
                }
            }
        }
コード例 #2
0
 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);
     }
 }