Beispiel #1
0
    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;
    }
Beispiel #2
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
    }