public virtual void OnUnhighlight(GameObject grabGO)
 {
     // first remove from highlight tracking list, to make sure nobody is highlighting anymore
     whoHighlightin.Remove(grabGO);
     // if not highlighted anymore, remove highlight. this can be true when using fake highlight, but otherwise only depends on the highlight tracking list.
     if (!isHighlighted)
     {
         HighlightUtils.Unhighlight(this, highlightMethod);
     }
 }
 public virtual void OnHighlight(GameObject grabGO)
 {
     // if it wasn't highlighted before, apply the material change
     if (!isHighlighted)
     {
         HighlightUtils.Highlight(this, highlightMethod);
     }
     // keep track if multiple highlights want to highlight, don't do it twice
     whoHighlightin.Add(grabGO);
 }