// 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 } } } } }