//-------------------------------------------------
 private void RemoveMatchingItemTypesFromHand(IF_VR_Steam_ItemPackage.ItemPackageType packageType, IF_VR_Steam_Hand hand)
 {
     for (int i = 0; i < hand.AttachedObjects.Count; i++)
     {
         IF_VR_Steam_ItemPackageReference packageReference = hand.AttachedObjects[i].attachedObject.GetComponent <IF_VR_Steam_ItemPackageReference>();
         if (packageReference != null)
         {
             if (packageReference.itemPackage.packageType == packageType)
             {
                 GameObject detachedItem = hand.AttachedObjects[i].attachedObject;
                 hand.DetachObject(detachedItem);
             }
         }
     }
 }
        //-------------------------------------------------
        private IF_VR_Steam_ItemPackage GetAttachedItemPackage(IF_VR_Steam_Hand hand)
        {
            GameObject currentAttachedObject = hand.currentAttachedObject;

            if (currentAttachedObject == null)               // verify the hand is holding something
            {
                return(null);
            }

            IF_VR_Steam_ItemPackageReference packageReference = hand.currentAttachedObject.GetComponent <IF_VR_Steam_ItemPackageReference>();

            if (packageReference == null)               // verify the item in the hand is matchable
            {
                return(null);
            }

            IF_VR_Steam_ItemPackage attachedItemPackage = packageReference.itemPackage;             // return the IF_VR_Steam_ItemPackage reference we find.

            return(attachedItemPackage);
        }
        //-------------------------------------------------
        private void RemoveMatchingItemsFromHandStack(IF_VR_Steam_ItemPackage package, IF_VR_Steam_Hand hand)
        {
            if (hand == null)
            {
                return;
            }

            for (int i = 0; i < hand.AttachedObjects.Count; i++)
            {
                IF_VR_Steam_ItemPackageReference packageReference = hand.AttachedObjects[i].attachedObject.GetComponent <IF_VR_Steam_ItemPackageReference>();
                if (packageReference != null)
                {
                    IF_VR_Steam_ItemPackage attachedObjectItemPackage = packageReference.itemPackage;
                    if ((attachedObjectItemPackage != null) && (attachedObjectItemPackage == package))
                    {
                        GameObject detachedItem = hand.AttachedObjects[i].attachedObject;
                        hand.DetachObject(detachedItem);
                    }
                }
            }
        }