我有一个简单的静态库存类,它是自定义类项目的列表。我正在开发一个制作系统,当我制作一些东西时,我需要从我的库存清单中删除所需的物品。
我尝试创建一个可以调用的方法,该方法将要删除的项目数组作为参数,但它不起作用。
我认为这是因为 foreach 循环不知道要删除哪些项目?我没有收到错误消息,它只是不起作用。我怎样才能做到这一点?
public class PlayerInventory: MonoBehaviour
{
public Texture2D tempIcon;
private static List<Item> _inventory=new List<Item>();
public static List<Item> Inventory
{
get { return _inventory; }
}
public static void RemoveCraftedMaterialsFromInventory(Item[] items)
{
foreach(Item item in items)
{
PlayerInventory._inventory.Remove(item);
}
}
}
这是显示将删除哪些项目的函数:
public static Item[] BowAndArrowReqs()
{
Item requiredItem1 = ObjectGenerator.CreateItem(CraftingMatType.BasicWood);
Item requiredItem2 = ObjectGenerator.CreateItem(CraftingMatType.BasicWood);
Item requiredItem3 = ObjectGenerator.CreateItem(CraftingMatType.String);
Item[] arrowRequiredItems = new Item[]{requiredItem1, requiredItem2, requiredItem3};
return arrowRequiredItems;
}
这就是所谓的:
这是在 RecipeCheck 静态类中:
PlayerInventory.RemoveCraftedMaterialsFromInventory(RecipeCheck.BowAndArrowReqs());