Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if (EventSystem.current.IsPointerOverGameObject() == false)//确保鼠标不是点击在UI层上面
            {
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit, 1000, LayerMask.GetMask("MapCube")))
                {
                    MapCube cube = hit.collider.GetComponent <MapCube>();
                    if (selectedTurret != null && cube.turretGo == null)
                    {
                        if (Money > selectedTurret.cost)
                        {
                            //钱足够,可以建造
                            ChangeMoney(-selectedTurret.cost);
                            cube.Build(selectedTurret);
                        }
                        else
                        {
                            //钱不够不可以建造,提示动画
                            animator.SetTrigger("filcker");
                        }
                    }
                    else if (cube.turretGo != null)
                    {
                        //升级处理
                        if (selectedMapcube == cube && upgradeCanves.activeInHierarchy)
                        {
                            StartCoroutine(HideUpgrade());
                        }
                        else
                        {
                            ShowUpgradeUI(cube.transform.position, cube.isUpgrade);
                        }

                        selectedMapcube = cube;//更新cube
                    }
                }
            }
        }
    }