//------------------------------------------------- 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); } } } }