Unity3D – Inventory System – Basic
You need an Inventory System for your last FPS or for your graphic adventure?
This is the basic code to start!
Create a scene:
– Empty Object, rename it ‘GameController’ and attach:
– Inventory.js
– GameControllerScript.js
Inventory.js:
#pragma strict var inventory = new ArrayList(); // declare the ArrayList function Start () { }// END Start() function Update () { }// END Update()
GameControllerScript.js
#pragma strict private var inventoryScript : Inventory; // variable to store another script function Awake () { inventoryScript = GetComponent(Inventory); // get script 'Inventory' }// END Awake() function Start(){ // add to script 'Inventory'> var inventory = new ArrayList(); inventoryScript.inventory.Add("pistol"); //add item to inventory inventoryScript.inventory.AddRange(Array("key", "key", "ammo", "ammo")); //add multiple items inventoryScript.inventory.Sort(); //sort inventory inventoryScript.inventory.Remove("ammo"); //remove first instance of item }// END Start() function OnGUI(){ //display inventory by converting it to an array GUI.Label(Rect(0,0,400,50), "Inventory: " + Array(inventoryScript.inventory)); // the result is -> Inventory: ammo,key,key,pistol }// END OnGUI()
Play, the result is -> Inventory: ammo,key,key,pistol
For italian peolple: Come funziona?
Super facile, creo un’ArrayList() ed aggiungo e tolgo contenuti.
ArrayList() è 5 volte meno performante di un Built-in Arrays ma estremamente più dinamico infatti:
– ha una dimensione dinamica, per aggiungere e togliere contenuto dinamicamente
– accetta dati di tipo misto
– presenta funzioni più avanzate di JS Arrays vedi documentazione Microsoft ufficiale a:
http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx