Provides a base that all highlighters can inherit from.

Script Usage:

This is an abstract class that is to be inherited to a concrete class that provides highlight functionality, therefore this script should not be directly used.

Inspector Parameters

  • Active: Determines if this highlighter is the active highlighter for the object the component is attached to. Only one active highlighter can be applied to a GameObject.
  • Unhighlight On Disable: Determines if the highlighted object should be unhighlighted when it is disabled.

Class Methods


public abstract void Initialise(Color? color = null, GameObject affectObject = null, Dictionary<string, object> options = null);

  • Parameters
    • Color? color - An optional colour may be passed through at point of initialisation in case the highlighter requires it.
    • GameObject affectObject - An optional GameObject to specify which object to apply the highlighting to.
    • Dictionary<string, object> options - An optional dictionary of highlighter specific options that may be differ with highlighter implementations.
  • Returns
    • none

The Initalise method is used to set up the state of the highlighter.


public abstract void ResetHighlighter();

  • Parameters
    • none
  • Returns
    • none

The ResetHighlighter method is used to reset the highlighter if anything on the object has changed. It should be called by any scripts changing object materials or colours.


public abstract void Highlight(Color? color = null, float duration = 0f);

  • Parameters
    • Color? color - An optional colour to highlight the game object to. The highlight colour may already have been set in the Initialise method so may not be required here.
    • float duration - An optional duration of how long before the highlight has occured. It can be used by highlighters to fade the colour if possible.
  • Returns
    • none

The Highlight method is used to initiate the highlighting logic to apply to an object.


public abstract void Unhighlight(Color? color = null, float duration = 0f);

  • Parameters
    • Color? color - An optional colour that could be used during the unhighlight phase. Usually will be left as null.
    • float duration - An optional duration of how long before the unhighlight has occured.
  • Returns
    • none

The Unhighlight method is used to initiate the logic that returns an object back to it's original appearance.


public virtual T GetOption<T>(Dictionary<string, object> options, string key)

  • Type Params
    • T - The system type that is expected to be returned.
  • Parameters
    • Dictionary<string, object> options - The dictionary of options to check in.
    • string key - The identifier key to look for.
  • Returns
    • T - The value in the options at the given key returned in the provided system type.

The GetOption method is used to return a value from the options array if the given key exists.


public virtual bool UsesClonedObject()

  • Parameters
    • none
  • Returns
    • bool - Returns true if the highlighter creates a cloned object to apply the highlighter on, returns false if no additional object is created.

The UsesClonedObject method is used to return whether the current highlighter creates a cloned object to do the highlighting with.


public static VRTK_BaseHighlighter GetActiveHighlighter(GameObject obj)

  • Parameters
    • GameObject obj - The GameObject to check for a highlighter on.
  • Returns
    • VRTK_BaseHighlighter - A valid and active highlighter.

The GetActiveHighlighter method checks the given GameObject for a valid and active highlighter.

Did this page help you?