カスタムクラスアイテムのリストである単純な静的在庫クラスがあります。私はクラフト システムに取り組んでおり、何かをクラフトするときに、インベントリ リストから必要なアイテムを削除する必要があります。
削除するアイテムの配列をパラメーターとして受け取る呼び出し可能なメソッドを作成しようとしましたが、機能しません。
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());