Φανταστείτε τον παίκτη σας να μαζεύει θησαυρούς, όπλα και μαγικά αντικείμενα σε ένα immersive κόσμο. Ένα καλοσχεδιασμένο σύστημα inventory κάνει το παιχνίδι σας εθιστικό! 😎 Σε αυτόν τον οδηγό, θα μάθετε πώς να δημιουργήσετε σύστημα inventory σε Unity, βήμα-βήμα, με κώδικα έτοιμο προς χρήση. Ιδανικό για indie developers και game θέρους που θέλουν γρήγορα αποτελέσματα.
Γιατί Χρειάζεστε ένα Δυνατό Σύστημα Inventory;
Στα σύγχρονα games όπως το latest Zelda ή Diablo clones, το inventory system είναι η καρδιά της progression. Επιτρέπει:
- ✅ Συλλογή και διαχείριση items
- ⭐ Drag & drop για fun gameplay
- 🔥 Stackable items για optimization
Θα εστιάσουμε σε Unity C#, το πιο δημοφιλές εργαλείο. Δεν χρειάζεστε προχωρημένες γνώσεις – ξεκινήστε τώρα! 👆
Βήμα 1️⃣: Δημιουργήστε τα Βασικά Στοιχεία (Item Class)
Πρώτα, φτιάξτε ένα ScriptableObject για τα items. Αυτό επιτρέπει εύκολη επεξεργασία χωρίς recompiles.
using UnityEngine;
[CreateAssetMenu(fileName = "New Item", menuName = "Inventory/Item")]
public class Item : ScriptableObject {
public string itemName;
public Sprite icon;
public bool isStackable;
public int maxStackSize = 99;
}
Δημιουργήστε items από το μενού Assets. Απλό, έτσι; Τώρα, ο παίκτης θα μπορεί να μαζεύει όπλα, potions και armor! 🎉
Βήμα 2️⃣: Το Inventory Manager Script
Το κεντρικό script διαχειρίζεται slots και items. Χρησιμοποιήστε List<InventorySlot> για ευελιξία.
public class Inventory : MonoBehaviour {
public int space = 20;
public List<InventorySlot> slots = new List<InventorySlot>();
public bool Add(Item item) {
// Λογική για stack και νέα slots
for (int i = 0; i < slots.Count; i++) {
if (slots[i].item == item && slots[i].isFull == false) {
slots[i].AddAmount(1);
return true;
}
}
// Βρείτε κενό slot
// ...
return false;
}
}
Εφαρμόστε το σε GameObject "Player". Test it με Add(item)! 🚀
Βήμα 3️⃣: UI Canvas και Slots
Φτιάξτε Canvas > Grid Layout για slots. Κάθε slot: Image (background), Image (icon), Text (amount).
Συνδέστε με InventorySlot script:
public class InventorySlot : MonoBehaviour {
public Image icon;
public Text amountText;
public Item item;
public int amount = 0;
public void AddAmount(int addAmount) { /* Update UI */ }
}
Χρησιμοποιήστε EventSystem για drag-drop. Βίντεο tutorials στο Unity Docs για extra tips!
Πίνακας Σύγκρισης Inventory Types
| Τύπος |
Πλεονεκτήματα |
Μειονεκτήματα |
| Grid Inventory |
Visual, fun για crafting |
Περισσότερη μνήμη |
| List Inventory |
Γρήγορο, scalable |
Λιγότερο immersive |
Βήμα 4️⃣: Προχωρημένα Features – Drag, Drop & Save
Προσθέστε IDragHandler από UnityEngine.EventSystems. Για save, χρησιμοποιήστε JsonUtility:
string json = JsonUtility.ToJson(inventorySave);
PlayerPrefs.SetString("Inventory", json);
Load on Awake! Τώρα το σύστημα inventory σας persist μεταξύ sessions. 👏
Optimization Tips για High-Performance Games
- 🔧 Object Pooling για icons
- ⚡ Dirty flags για UI updates μόνο όταν χρειάζεται
- 📱 Mobile-friendly: Limit slots σε 12-16
Με αυτά, το game σας τρέχει smooth σε low-end devices!
Συμπέρασμα: Ξεκινήστε το Δικό Σας Σύστημα Inventory Σήμερα!
Ακολουθήστε αυτά τα βήματα και θα έχετε ένα επαγγελματικό inventory system σε ώρες. Πειραματιστείτε με custom items και sharing online. Έτοιμοι για next level; Δημιουργήστε το prototype σας τώρα και μοιραστείτε στα comments! 🌟 Τι item θα προσθέσετε πρώτο;
Αυτός ο οδηγός βασίζεται σε Unity 2026 LTS best practices για μέγιστη συμβατότητα.