// Update is called once per frame void Update() { /// /// if (isBuildPanel && !upgradePanelOpen) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 1000, placementLayer)) { if (lastHitObj) { lastHitObj.renderer.material = originalMat; } lastHitObj = hit.collider.gameObject; originalMat = lastHitObj.renderer.material; lastHitObj.renderer.material = hoverMat; } else { if (lastHitObj) { lastHitObj.renderer.material = originalMat; lastHitObj = null; } } if (Input.GetMouseButtonDown(0) && lastHitObj) { focusedPlain = (PlacementPlain)lastHitObj.GetComponent("PlacementPlain"); //Debug.Log("Click!"); if (lastHitObj.tag == "Placement_Open" && levelMaster.WeaponPrices[structureIndex] <= levelMaster.cashCount && levelMaster.WeaponAvailibility[structureIndex] <= levelMaster.waveLevel) { //Debug.Log("Placement Open"); Vector3 vec3; // fixing pivot point mistake if (structureIndex == 1) { vec3 = new Vector3(lastHitObj.transform.position.x, lastHitObj.transform.position.y + 0.30f, lastHitObj.transform.position.z); //if launcher move little bit up } else { vec3 = new Vector3(lastHitObj.transform.position.x, lastHitObj.transform.position.y, lastHitObj.transform.position.z); } GameObject newStructure = (GameObject)Instantiate(allStructures[structureIndex], lastHitObj.transform.position, Quaternion.identity); newStructure.transform.position = vec3; newStructure.transform.localEulerAngles = new Vector3(newStructure.transform.localEulerAngles.x, Random.Range(0, 360), newStructure.transform.localEulerAngles.z); newStructure.tag = "Obstacles"; //newStructure.layer = 10; lastHitObj.tag = "Placement_Taken"; focusedPlain.myStructure = newStructure; levelMaster.cashCount -= levelMaster.WeaponPrices[structureIndex]; levelMaster.HUDUpdate(); astar.Scan(); Debug.Log("Scan"); foreach (GameObject tnk in GameObject.FindGameObjectsWithTag("Ground Enemy")) { Tank tnkScript = (Tank)tnk.GetComponent("Tank"); tnkScript.FindNewPath(); } //UpdateGUI(); } /*UPGRADE*/ else if (lastHitObj.tag != "Placement_Open") { //upgrade turret turretToUpgrade = (BaseTurret)focusedPlain.myStructure.GetComponent("BaseTurret"); if (turretToUpgrade.updateObject) { upgradeCost = turretToUpgrade.updateCost; upgradeText.text = "Upgrade to\n " + turretToUpgrade.name + " $" + turretToUpgrade.updateCost + "?"; CheckUpgradeAvailible(); upgradePanelTweener.enabled = true; upgradePanelTweener.Play(true); upgradePanelOpen = true; } //Debug.Log ("upgrade panel"); } } } //isBuildPanel }
// Update is called once per frame void Update() { /// /// if (isBuildPanel && !upgradePanelOpen) { Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; if (Physics.Raycast (ray, out hit, 1000, placementLayer)) { if (lastHitObj) { lastHitObj.renderer.material = originalMat; } lastHitObj = hit.collider.gameObject; originalMat = lastHitObj.renderer.material; lastHitObj.renderer.material = hoverMat; } else { if (lastHitObj) { lastHitObj.renderer.material = originalMat; lastHitObj = null; } } if (Input.GetMouseButtonDown(0) && lastHitObj ) { focusedPlain = (PlacementPlain)lastHitObj.GetComponent("PlacementPlain"); //Debug.Log("Click!"); if (lastHitObj.tag == "Placement_Open" && levelMaster.WeaponPrices[structureIndex]<=levelMaster.cashCount && levelMaster.WeaponAvailibility[structureIndex] <= levelMaster.waveLevel) { //Debug.Log("Placement Open"); Vector3 vec3; // fixing pivot point mistake if (structureIndex == 1) { vec3 = new Vector3(lastHitObj.transform.position.x, lastHitObj.transform.position.y+0.30f,lastHitObj.transform.position.z); //if launcher move little bit up } else {vec3 = new Vector3(lastHitObj.transform.position.x, lastHitObj.transform.position.y,lastHitObj.transform.position.z);} GameObject newStructure = (GameObject)Instantiate(allStructures[structureIndex], lastHitObj.transform.position,Quaternion.identity); newStructure.transform.position = vec3; newStructure.transform.localEulerAngles = new Vector3(newStructure.transform.localEulerAngles.x, Random.Range(0,360), newStructure.transform.localEulerAngles.z); newStructure.tag="Obstacles"; //newStructure.layer = 10; lastHitObj.tag = "Placement_Taken"; focusedPlain.myStructure = newStructure; levelMaster.cashCount -= levelMaster.WeaponPrices[structureIndex]; levelMaster.HUDUpdate(); astar.Scan(); Debug.Log("Scan"); foreach (GameObject tnk in GameObject.FindGameObjectsWithTag("Ground Enemy")) { Tank tnkScript = (Tank)tnk.GetComponent("Tank"); tnkScript.FindNewPath(); } //UpdateGUI(); } /*UPGRADE*/ else if (lastHitObj.tag != "Placement_Open") { //upgrade turret turretToUpgrade = (BaseTurret) focusedPlain.myStructure.GetComponent("BaseTurret"); if (turretToUpgrade.updateObject) { upgradeCost = turretToUpgrade.updateCost; upgradeText.text = "Upgrade to\n "+turretToUpgrade.name+" $"+turretToUpgrade.updateCost+"?"; CheckUpgradeAvailible(); upgradePanelTweener.enabled = true; upgradePanelTweener.Play(true); upgradePanelOpen = true; } //Debug.Log ("upgrade panel"); } } } //isBuildPanel }