예제 #1
0
 public void PlaceTower(TowerPlacementInfo towerInfo)
 {
     Type       = towerInfo.TowerType;
     Tower      = Instantiate(towerInfo.TowerPrefab, transform.position, Quaternion.identity);
     TowerState = Tower.GetComponent <TowerState>();
     IsEmpty    = false;
 }
예제 #2
0
    public void Set(TowerPlacementInfo towerPlacementInfo)
    {
        Debug.Log("Tower placement set");

        if (towerPlacementInfo == null)
        {
            if (CurrentTowerPreview != null)
            {
                Destroy(CurrentTowerPreview.gameObject);
            }
            info = null;
            return;
        }

        TowerPreviewPrefab = towerPlacementInfo.TowerPlacementPreviewPrefab;
        info = towerPlacementInfo;

        if (CurrentTowerPreview != null)
        {
            Destroy(CurrentTowerPreview.gameObject);
        }

        var mousePos = Input.mousePosition;
        //mousePos.z = 2.0; // we want 2m away from the camera position.
        var objectPos = Camera.main.ScreenToWorldPoint(mousePos);

        //korekta zeby bylo na srodku myszki
        var towerPreview = TowerPreviewPrefab.GetComponent <TowerPlacementPreview>();

        if (towerPreview != null && towerPreview.BorderRenderer != null && towerPreview.BorderRenderer.sprite != null)
        {
            objectPos = new Vector3(objectPos.x - towerPreview.BorderRenderer.bounds.size.x / 2, objectPos.y - towerPreview.BorderRenderer.bounds.size.y / 2, objectPos.z);
        }


        CurrentTowerPreview = Instantiate(TowerPreviewPrefab, objectPos, Quaternion.identity).transform;
        SetBorderColor(DeniedColor);
    }