HTX Frederikshavn & Hjørring

Det har aldrig været sjovere at være nørd

Brugerværktøjer

Webstedsværktøjer


ddu:godot:inventory:inventory_ui

Inventory UI

Grafik anvendt i denne tutorial kan hentes her:

Inventory-system i Godot 4 med C#

Denne tutorial lærer dig at bygge et simpelt, genbrugeligt inventory-system i Godot 4 med C#. Du bygger systemet trin for trin og kan køre og teste efter hvert trin.

Det bygger du

  • Et inventory med 3×3 slots, vist i et grid oven på en baggrund, der skalerer pænt (NinePatchRect).
  • En genbrugelig inventory-komponent, der kun indeholder data og er adskilt fra visningen (UI).
  • Samme komponent to steder: hos en spiller og i en kiste.

Systemet er non-stackable: hver slot rummer højst ét item. Strukturen er forberedt, så stacking kan tilføjes senere, men det implementerer vi ikke her. Vi bruger heller ikke signals, delegates eller drag and drop.

Forudsætninger

Tutorialen antager, at du allerede har en Item-klasse (en Resource) med felterne Name og Icon, eventuelle subtyper som WeaponItem og PotionItem og nogle item-filer (.tres). De gennemgås ikke her. Se trin 1.

Indholdsfortegnelse

Sådan er systemet bygget

Systemet består af tre lag, som hver har ét ansvar:

Lag Hvad det gør Filer
Data Ved, hvilke items der ligger i hvilke slots InventorySlot, Inventory
UI Tegner indholdet af et inventory på skærmen SlotUI, InventoryUI
Ejere Har et inventory og bestemmer, hvad det bruges til Player, Chest, Main

Fordi data og UI er adskilt, kan den samme Inventory-komponent bruges af en spiller, en kiste eller en fjende, og det samme UI kan vise dem alle. Det er den vigtigste idé i hele tutorialen.

Mappestruktur

Du opretter disse mapper i Godot i trin 1:

res://
├── Sprites/             billeder 
├── Resources/
│   └── Items/           dine item-filer (.tres)
├── Scenes/              alle .tscn-filer
└── Scripts/
    ├── Items/           dine Item-klasser (har du allerede)
    ├── Inventory/       InventorySlot.cs, Inventory.cs, SlotUI.cs, InventoryUI.cs
    └── Game/            Player.cs, Chest.cs, Main.cs

Sådan bruger du tutorialen

  • Gå igennem trinene i rækkefølge. Hvert trin bygger på det forrige.
  • Kopiér ikke koden blindt. Læs forklaringen, og find ud af, hvorfor koden ser ud, som den gør.
  • Filnavne, klassenavne og nodenavne skal stå præcis, som de er skrevet. Godot skelner mellem store og små bogstaver.
  • Efter hver ændring i C#-kode skal du trykke på Build (hammer-ikonet øverst til højre i Godot). Ellers opdager editoren ikke ændringerne.
  • Hvis noget går galt, så kig på siden Fejlfinding.

Du er klar til at starte: Gå til trin 1 →

ddu/godot/inventory/inventory_ui.txt · Sidst ændret: af admin