Inventory inventory; //Inventory script found on player void Start() { //Set player to the player and all the scripts to the player's scripts player = GameObject.FindGameObjectWithTag("Player"); FPC = player.GetComponent <FirstPersonController> (); inventory = player.GetComponent <Inventory> (); //Instantiate so that we do not get NullReference selectedTarget = this.gameObject; refBlock = this.gameObject; possibilities = new bool[11]; //Set corRoomTextures to the corner textures repeated once //They look like this { "|_", ":-", "-:", "_|", "|_", ":-", "-:", "_|" } corRoomTextures = new Texture2D[8]; threeRoomTextures = new Texture2D[8]; for (int i = 0; i < 8; i++) { if (i < 4) { corRoomTextures [i] = InstantiateBlocks.getTextures() [i + 2]; } else { corRoomTextures [i] = InstantiateBlocks.getTextures() [i - 2]; } } //Set threeRoomTextures to the three room textures repeated once //They look like this { "-:-", "-|", "_|_", "|-","-:-", "-|", "_|_", "|-" } for (int i = 0; i < 8; i++) { if (i < 4) { threeRoomTextures [i] = InstantiateBlocks.getTextures() [i + 6]; } else { threeRoomTextures [i] = InstantiateBlocks.getTextures() [i + 2]; } } roomNum = 0; }
void OnGUI() { //SCALE GUI TO SCREEN RESOLUTION float rX, rY; float scale_width, scale_height; scale_width = 1296; scale_height = 729; rX = Screen.width / scale_width; rY = Screen.height / scale_height; GUI.matrix = Matrix4x4.TRS(new Vector3(0, 0, 0), Quaternion.identity, new Vector3(rX, rY, 1)); #region PlacingAPiece //IF PLACING A PIECE IS AVAILABLE AND WE HAVE ENOUGH OF THAT PIECE IN INVENTORY, ALLOW PLAYER TO PLACE PIECE //DISPLAY AMOUNT OF PIECE LEFT UNDERNEATH if (isPlacingPiece) { int x = 50; if (possibilities [0]) { if (GUI.Button(new Rect(x, 550, 100, 50), InstantiateBlocks.getTextures()[1])) { if (Inventory.getAmountOfPiece(0) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("TwoDoorRoom") as GameObject, new Vector3(0, 0, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(0)); x += 100; } if (possibilities [1]) { if (GUI.Button(new Rect(x, 550, 100, 50), InstantiateBlocks.getTextures()[1])) { if (Inventory.getAmountOfPiece(0) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("TwoDoorRoom") as GameObject, new Vector3(0, 90, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(0)); x += 100; } if (possibilities [2]) { if (GUI.Button(new Rect(x, 550, 100, 50), corRoomTextures[roomNum])) { if (Inventory.getAmountOfPiece(1) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("CornerRoom") as GameObject, new Vector3(0, 0, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(1)); x += 100; } if (possibilities [3]) { if (GUI.Button(new Rect(x, 550, 100, 50), corRoomTextures[1 + roomNum])) { if (Inventory.getAmountOfPiece(1) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("CornerRoom") as GameObject, new Vector3(0, 90, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(1)); x += 100; } if (possibilities [4]) { if (GUI.Button(new Rect(x, 550, 100, 50), corRoomTextures[2 + roomNum])) { if (Inventory.getAmountOfPiece(1) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("CornerRoom") as GameObject, new Vector3(0, 180, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(1)); x += 100; } if (possibilities [5]) { if (GUI.Button(new Rect(x, 550, 100, 50), corRoomTextures[3 + roomNum])) { if (Inventory.getAmountOfPiece(1) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("CornerRoom") as GameObject, new Vector3(0, 270, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(1)); x += 100; } if (possibilities [6]) { if (GUI.Button(new Rect(x, 550, 100, 50), threeRoomTextures[roomNum])) { if (Inventory.getAmountOfPiece(2) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("ThreeDoorRoom") as GameObject, new Vector3(0, 0, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(2)); x += 100; } if (possibilities [7]) { if (GUI.Button(new Rect(x, 550, 100, 50), threeRoomTextures[1 + roomNum])) { if (Inventory.getAmountOfPiece(2) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("ThreeDoorRoom") as GameObject, new Vector3(0, 90, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(2)); x += 100; } if (possibilities [8]) { if (GUI.Button(new Rect(x, 550, 100, 50), threeRoomTextures[2 + roomNum])) { if (Inventory.getAmountOfPiece(2) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("ThreeDoorRoom") as GameObject, new Vector3(0, 180, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(2)); x += 100; } if (possibilities [9]) { if (GUI.Button(new Rect(x, 550, 100, 50), threeRoomTextures[3 + roomNum])) { if (Inventory.getAmountOfPiece(2) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("ThreeDoorRoom") as GameObject, new Vector3(0, 270, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(2)); x += 100; } if (possibilities [10]) { if (GUI.Button(new Rect(x, 550, 100, 50), InstantiateBlocks.getTextures()[10])) { if (Inventory.getAmountOfPiece(3) > 0) { refBlock.GetComponent <Block> ().addPiece(Resources.Load("FourDoorRoom") as GameObject, new Vector3(0, 0, 0)); for (int i = 0; i < possibilities.Length; i++) { possibilities [i] = false; } isPlacingPiece = false; } } GUI.Label(new Rect(x, 600, 100, 50), "Amount Left: " + Inventory.getAmountOfPiece(3)); x += 100; } x = 0; } #endregion }