Här kommer nästa lektion, där vi bygger vidare på det vi gjort genom att skapa ett enkelt inventariesystem och visa objekt som karaktären plockar upp i spelet.
I denna lektion kommer vi att:
Ett inventariesystem lagrar objekt som spelaren plockar upp och kan visa dessa objekt på skärmen.
Skapa ett nytt skript:
Kod för Inventory Script:
Inventory.cs-skriptet kan du börja med en enkel lista som lagrar insamlade objekt. Lägg till följande kod:using System.Collections.Generic;
using UnityEngine;
public class Inventory : MonoBehaviour
{
// Lista som lagrar insamlade objekt
public List<GameObject> collectedItems = new List<GameObject>();
// Funktion för att lägga till ett objekt i inventariet
public void AddItem(GameObject item)
{
collectedItems.Add(item);
Debug.Log(item.name + " tillagd i inventariet.");
}
}
Lägg till Inventory till Player:
Uppdatera Collectible-skriptet:
Collectible.cs så att när ett objekt plockas upp, läggs det till i inventariet istället för att bara förstöras.Collectible.cs så här:using UnityEngine;
public class Collectible : MonoBehaviour
{
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
Inventory playerInventory = other.GetComponent<Inventory>();
if (playerInventory != null)
{
playerInventory.AddItem(gameObject); // Lägg till objektet i inventariet
gameObject.SetActive(false); // Döljer objektet istället för att förstöra det
}
}
}
}
I denna kod döljer vi objektet (gameObject.SetActive(false)) istället för att förstöra det. Det lagras nu i spelarens inventarium.
Unitys UI-system låter dig skapa användargränssnitt som visar information till spelaren, som t.ex. vilka objekt de har plockat upp. Vi ska nu skapa en enkel visning av objekt som spelaren har plockat upp i ett inventarie.
Skapa en Canvas:
Skapa en Panel för inventariet:
Lägg till en Text för objekt:
Anslut Text-UI till ett nytt skript:
InventoryUI.InventoryUI.cs:using UnityEngine;
using UnityEngine.UI;
public class InventoryUI : MonoBehaviour
{
public Inventory playerInventory;
public Text itemText;
void Update()
{
itemText.text = "Collected Items:\n";
foreach (var item in playerInventory.collectedItems)
{
itemText.text += item.name + "\n";
}
}
}
Nu när vi har ett grundläggande inventariesystem, kan vi lägga till fler funktioner i spelet. Här är några idéer som vi kan utveckla i kommande lektioner:
I nästa lektion ska vi:
Vi bygger vidare på detta steg för steg, så se till att du känner dig bekväm med grunderna innan vi går vidare. Lycka till!