Beispiel #1
0
    private void UpdateTowerPlacement()
    {
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            if (hit.collider.GetComponent <GridSlot> () == null)
            {
                DeselectGrid();
                return;
            }

            if (hit.collider.GetComponent <GridSlot> ().GridSlotFilled)
            {
                DeselectGrid();
                return;
            }

            gridSlotSelector.transform.position = hit.collider.transform.position + new Vector3(0, 0.5f, 0);

            if (Input.GetMouseButtonDown(0))
            {
                GameObject tower = null;

                switch (towerSelected)
                {
                case TOWERSELECTED.ARCH:
                    tower = Instantiate(archTower, hit.collider.transform.position, Quaternion.identity) as GameObject;
                    break;

                case TOWERSELECTED.MACHINE:
                    tower = Instantiate(machineTower, hit.collider.transform.position, Quaternion.identity) as GameObject;
                    break;

                case TOWERSELECTED.LASER:
                    tower = Instantiate(laserTower, hit.collider.transform.position, Quaternion.identity) as GameObject;
                    break;
                }

                if (tower == null)
                {
                    return;
                }

                towerSelected = TOWERSELECTED.NONE;

                gameManager.PlayerGold -= tower.GetComponent <Tower> ().goldCost;
                hit.collider.GetComponent <GridSlot> ().GridSlotFilled = true;

                DeselectGrid();
                tower.transform.position += new Vector3(0, 1, 0);
            }
        }
    }
Beispiel #2
0
 private void OnGUI()
 {
     GUILayout.BeginArea(new Rect(Screen.width * 0.85f, Screen.height * 0.35f, 1000, 1000));
     GUILayout.BeginVertical();
     foreach (KeyValuePair <TOWERSELECTED, GameObject> kvp in towerButtons)
     {
         if (GUILayout.Button(kvp.Value.GetComponent <Tower> ().towerName + " (" + kvp.Value.GetComponent <Tower> ().goldCost + " gold)", GUILayout.Height(100), GUILayout.Width(200)))
         {
             if (gameManager.PlayerGold >= kvp.Value.GetComponent <Tower> ().goldCost)
             {
                 towerSelected = kvp.Key;
             }
             else
             {
                 towerSelected = TOWERSELECTED.NONE;
                 DeselectGrid();
             }
         }
     }
     GUILayout.EndVertical();
     GUILayout.EndArea();
 }