Пример #1
0
    // 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
    }
Пример #2
0
    // 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
    }