← Forrige: Genbrug i en kiste | Forside | Fejlfinding
Du har bygget et fungerende, genbrugeligt inventory-system. Her er en kort opsamling af, hvad du har lært, og nogle ideer til at arbejde videre.
Item (Resource) ── findes allerede ──► .tres-filer
▲
│ arver
WeaponItem, PotionItem
InventorySlot ◄── ligger i ── Inventory (Node) ◄── barn af ── Player, Chest
▲
│ SetInventory(...)
InventoryUI ── opretter ──► SlotUI (én pr. slot)
Player, Chest) samler det hele, og Main forbinder data og UI.Inventory. Kun AddItem skal ændres, når reglerne ændres.Stacking er ikke implementeret, men strukturen er klar. Disse steder skal ændres, når du selv vil bygge det:
InventorySlot har allerede feltet Amount.Item skal have et nyt felt, fx MaxStackSize, som fortæller, hvor mange der må ligge i én slot.Inventory.AddItem er det eneste sted, hvor items lægges i slots. Her skal du først lede efter en slot med samme item, som ikke er fyldt, og først derefter tage en tom slot.Inventory.RemoveItem skal sætte Amount ned med 1 og først tømme slotten, når den når 0.SlotUI skal have en lille tekst (et Label) til at vise antallet.
Resten af systemet (InventoryUI, ejerne og Main) skal ikke ændres.
AddItem.Item en metode Use(), som PotionItem og WeaponItem overskriver med hver deres opførsel. Det virker, fordi subtyperne arver fra Item.Visible på UI-laget til true eller false, når spilleren trykker på en tast (kræver et input-map i Project Settings → Input Map).Item, som lægger sig i spillerens inventory, når spilleren rører det.Inventory.Player og Chest er næsten ens. Flyt det fælles til en fælles basisklasse.
Hele den færdige kode ligger i mappen kode i den zip-fil, du hentede tutorialen i.