- Home /
How do I make my inventory find the first slot available?
I already tried to do this but when ever I pick up an item it takes it to only the second slot!
Inventory script: using UnityEngine; using System.Collections; using System.Collections.Generic;
public class Inventory : MonoBehaviour { private Rect windowRect = new Rect(300, 100, 400, 400); static public Dictionary inventorynamesDictionary = new Dictionary () { {0, string.Empty}, {1, string.Empty}, {2, string.Empty}, {3, string.Empty}, {4, string.Empty}, {5, string.Empty}, {6, string.Empty}, {7, string.Empty}, {8, string.Empty}, {9, string.Empty} }; public static bool FirstSlot = false; public static bool SecondSlot = false; public static bool ThirdSlot = false; public static bool FourthSlot = false; public static bool FifthSlot = false; public static bool SixthSlot = false;
ItemClass itemObject = new ItemClass();
void Start (){
}
void Update () {
}
void OnGUI() {
if(Input.GetKey (KeyCode.Tab))
windowRect = GUI.Window(0, windowRect, DoMyWindow, "Inventory");
}
void DoMyWindow(int windowID) {
GUILayout.BeginArea (new Rect (0, 50, 400, 400));
GUILayout.BeginHorizontal ();
if (GUILayout.Button (inventorynamesDictionary [0], GUILayout.Height (50))) {
if(inventorynamesDictionary[0] == itemObject.cm9Item.name)
{
Debug.Log("Equpuiped weapon!!");
}
}
GUILayout.Button (inventorynamesDictionary [1], GUILayout.Height (50));
GUILayout.Button (inventorynamesDictionary [2], GUILayout.Height (50));
GUILayout.EndHorizontal ();
GUILayout.BeginHorizontal ();
GUILayout.Button (inventorynamesDictionary [3], GUILayout.Height (50));
GUILayout.Button (inventorynamesDictionary [4], GUILayout.Height (50));
GUILayout.Button (inventorynamesDictionary [5], GUILayout.Height (50));
GUILayout.EndHorizontal ();
GUILayout.EndArea ();
}
}
PickUpgun script
using UnityEngine; using System.Collections; using System.Collections.Generic;
public class PickUpGun : MonoBehaviour { public GameObject Gun; public GameObject Gun1; public bool GotPistol; private Ray mouseRay; private RaycastHit rayHit;
private Dictionary<int, string> lootDictionary = new Dictionary <int, string>()
{{0, string.Empty},
{1, string.Empty},
{2, string.Empty},
{3, string.Empty},
{4, string.Empty},
{5, string.Empty}
};
ItemClass itemObject = new ItemClass();
public GameObject objectwithInventory;
Inventory Inventory ;
// Use this for initialization
void Start () {
lootDictionary [0] = itemObject.cm9Item.name;
lootDictionary [1] = itemObject.breadItem.name;
lootDictionary [2] = itemObject.painkillersItem.name;
Inventory = objectwithInventory.GetComponent<Inventory>();
}
// Update is called once per frame
void Update () {
mouseRay = Camera.main.ScreenPointToRay (new Vector3 (Screen.width / 2, Screen.height / 2,0));
if (Input.GetKeyDown (KeyCode.E))
{
Physics.Raycast(mouseRay, out rayHit);
if(rayHit.collider.transform.tag == "cm9")
{
Destroy(Gun);
GotPistol = true;
if(GotPistol = true){
if(Inventory.FirstSlot = false){
Inventory.inventorynamesDictionary [0] = lootDictionary[0];
Inventory.FirstSlot = true;
Debug.Log ("First Slot is now full");
}
if(Inventory.FirstSlot = true)
{
Inventory.inventorynamesDictionary [1] = lootDictionary[0];
Inventory.SecondSlot = true;
}
}
}
} } }
Your answer
Follow this Question
Related Questions
Best approach in making Inventory UseItem functionality. 1 Answer
Destroy Item Visuals but store a version of it 2 Answers
Grid Inventory : Move Item & Slot Highlighting 2 Answers
Making character items and customizable characters? 1 Answer
Making a Gui Texture Continue To Rotate While Loading a Level 1 Answer