using UnityEngine; namespace Invector.vItemManager { [vClassHeader("Remove Item", openClose = false)] public class vRemoveItem : vMonoBehaviour { public vRemoveCurrentItem.Type type = vRemoveCurrentItem.Type.DestroyItem; public bool getItemByName; [vHideInInspector("getItemByName")] public string itemName; [vHideInInspector("getItemByName", true)] public int itemID; /// /// Remove item of the target collider /// /// target public void RemoveItem(Collider target) { var itemManager = target.GetComponent(); RemoveItem(itemManager); } /// /// Remove item of the target gameObject /// /// target public void RemoveItem(GameObject target) { var itemManager = target.GetComponent(); RemoveItem(itemManager); } /// /// Remove item of the target /// /// target public void RemoveItem(vItemManager itemManager) { if (itemManager) { var item = GetItem(itemManager); if (item != null) { if (type == vRemoveCurrentItem.Type.UnequipItem) { itemManager.UnequipItem(item); } else if (type == vRemoveCurrentItem.Type.DestroyItem) { itemManager.DestroyItem(item, 1); } else { itemManager.DropItem(item, 1); } } } } vItem GetItem(vItemManager itemManager) { if (getItemByName) { // Check if you have an item via name (string) in your Inventory if (itemManager.ContainItem(itemName)) { return itemManager.GetItem(itemName); } } else { // Check if you have an item via ID (integer) in your Inventory if (itemManager.ContainItem(itemID)) { return itemManager.GetItem(itemID); } } return null; } } }