Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButton(0))
        {//если нажимаем левую кнопку мыши
            try
            {
                TowerControlle chousenTower = towerBtnPressed.GetTowerControll;
                Vector2        mousePoint   = Camera.main.ScreenToWorldPoint(Input.mousePosition); //считывает положение нашего курсора относительно экрана
                RaycastHit2D   hit          = Physics2D.Raycast(mousePoint, Vector2.zero);         //луч будет идти от нуля координат и отправлятся к месту нашего клика и будет смотреть куда мы кликаем
                if (chousenTower.GetCost() <= Manager.Instance.GetResources() && hit.collider.tag == "TowerGround" && towerBtnPressed != null)
                {                                                                                  //если мы получим какой-то тег и он равен TowerGround
                    hit.collider.tag = "TowerGroundIsFull";                                        //меняем тэг чтобы нельзя было поставить 2 башни в одну
                    PlaceTower(hit);                                                               //то выставляем товер
                    DisebleDrag();
                }
                else if (spriteRenderer.enabled)
                {
                    Manager.Instance.GetSound().Play();
                }
            }
            catch (Exception) { }
        }

        if (Input.GetMouseButton(1))
        {
            DisebleDrag();
            towerBtnPressed = null;
        }
        if (spriteRenderer.enabled)
        {
            FollowMouse();
        }
    }
Beispiel #2
0
    public void PlaceTower(RaycastHit2D hit)
    {
        if (!EventSystem.current.IsPointerOverGameObject() && towerBtnPressed != null)
        {
            TowerControlle chousenTower = towerBtnPressed.GetTowerControll;
            Manager.Instance.SetResources(Manager.Instance.GetResources() - chousenTower.GetCost());
            GameObject newTower = Instantiate(towerBtnPressed.GetTowerObject);

            newTower.transform.position = hit.transform.position;
        }
    }