/// <summary> Returns all grabables that both fingers are touchign </summary>
 /// <param name="finger1"></param>
 /// <param name="finger2"></param>
 /// <returns></returns>
 public SG_Interactable[] GetMatching(int finger1, SG_HoverCollider touch)
 {
     if (touchScripts[finger1] != null && touch != null)
     {
         return(touchScripts[finger1].MatchingObjects(touch));
     }
     return(new SG_Interactable[] { });
 }
 public void OnCollisionEnter(Collision collision)
 {
     //If we have a Physics layer, it's colliders, without RB, will pass on their OnCollisionEnter to this Object
     //If we have no Physics Layer, this function will not even trigger.
     if (ignoreGrabables)
     {
         SG_Interactable interactable;
         if (SG_HoverCollider.GetInteractableScript(collision.collider, out interactable))
         {
             this.physicsTrackingLayer.SetIgnoreCollision(collision.collider, true);
         }
     }
 }
    /// <summary> Returns a list of interactables that are touched by both this hoverCollider and another hoverCollider </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    public SG_Interactable[] MatchingObjects(SG_HoverCollider other)
    {
        List <SG_Interactable> bothTouch = new List <SG_Interactable>();

        SG_Interactable[] touchedOther = other.TouchedObjects;
        for (int i = 0; i < touchedOther.Length; i++)
        {
            if (this.IsTouching(touchedOther[i]))
            {
                bothTouch.Add(touchedOther[i]);
            }
        }
        return(bothTouch.ToArray());
    }