public void UpgradeButton() { if (!playerStats) { NewPlayer(); } if (playerStats == null) { return; } if (playerStats.Wood - buildingStats.GetUpgradeWood() >= 0 && playerStats.Stone - buildingStats.GetUpgradeStone() >= 0) { playerStats.Wood -= buildingStats.GetUpgradeWood(); playerStats.Stone -= buildingStats.GetUpgradeStone(); grabPlayerStats.BuildingBoughtSoldRepairedUpgraded(); buildingStats.CalculateRepairCosts(); UpdateRepairCostAndHealth(); buildingStats.BuildingUpgrade(); } }
void FixedUpdate() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); ChangePlacementObject(SelectedBuilding); if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { CheckForBuilding(hit); if (IsBuildingMode) { BuildMode(); placementObject.SetActive(true); NewPosition = hit.point; x = NewPosition.x; z = NewPosition.z; x = Mathf.Round(x / CellSize) * CellSize; y = -0.5f; z = Mathf.Round(z / CellSize) * CellSize; placementObject.transform.position = new Vector3(x, y, z); if (Input.GetMouseButton(0)) { //Add this in when i add the new UI to unity, this will stop the button pressing effect the ingame world if (EventSystem.current.IsPointerOverGameObject()) { return; } if (hit.transform.tag == "Ground") { if (CanBuy()) { GameObject newBuilding = Instantiate(SelectedBuilding, new Vector3(x, y, z), Quaternion.identity); newBuilding.transform.parent = transform; grabPlayerStats.BuildingBoughtSoldRepairedUpgraded(); if (SelectedBuilding.tag == "Base") { gameControllerScript.SpawnZombieSpawners(); } /*if (SelectedBuilding.tag == "Door") * Physics.IgnoreCollision(SelectedBuilding.GetComponent<Collider>(), GameObject.FindGameObjectWithTag("Player").GetComponent<Collider>());*/ } } } } else if (!IsBuildingMode) { placementObject.SetActive(false); } } }