Пример #1
0
    void Awake()
    {
        _towerTarget = GetComponent <TowerTarget> ();
        _towerShoot  = GetComponent <TowerShoot> ();
        _renderer    = GetComponent <SpriteRenderer> ();

        currentUpgrade      = 0;
        maxAmountOfUpgrades = upgrades.Length;
    }
Пример #2
0
    private IEnumerator Build(GameObject obj)
    {
        bool isBuilding = true;

        GameObject tower = Instantiate(obj, Vector3.zero, Quaternion.identity) as GameObject;

        tower.transform.SetParent(_towersObject.transform);

        TowerInputController towerInputController = tower.GetComponent <TowerInputController>();
        TowerShoot           towerShoot           = tower.GetComponent <TowerShoot>();
        TowerTarget          towerTarget          = tower.GetComponent <TowerTarget>();
        BoxCollider2D        collider             = tower.GetComponent <BoxCollider2D>();
        SpriteRenderer       renderer             = tower.GetComponent <SpriteRenderer>();
        Color defaultColor = renderer.color;

        collider.isTrigger           = true;
        towerInputController.enabled = false;
        towerShoot.enabled           = false;
        towerTarget.enabled          = false;

        while (isBuilding)
        {
            Vector2 mouseWorldPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector2 roundedPosition    = new Vector2(Mathf.RoundToInt(mouseWorldPosition.x),
                                                     Mathf.RoundToInt(mouseWorldPosition.y));

            tower.transform.position = roundedPosition;

            RaycastHit2D[] hitInfo         = Physics2D.RaycastAll(mouseWorldPosition, Vector2.zero, Mathf.Infinity, _layerMask);
            bool           isPlaceAbleTile = CheckForPlaceablePosition(hitInfo);

            if (isPlaceAbleTile)
            {
                renderer.color = Color.green;
            }
            else
            {
                renderer.color = Color.red;
            }


            if (Input.GetMouseButtonDown(0) && isPlaceAbleTile)
            {
                isBuilding = false;
            }

            yield return(new WaitForSeconds(0f));
        }

        towerInputController.enabled = true;
        towerShoot.enabled           = true;
        towerTarget.enabled          = true;
        renderer.color = defaultColor;
    }
Пример #3
0
 void Awake()
 {
     _towerTarget = GetComponent<TowerTarget> ();
     _lineRenderer = GetComponent<LineRenderer> ();
     _lineRenderer.sortingLayerName = SortingLayers.projectiles;
 }
 void Awake()
 {
     towerTarget = GetComponent<TowerTarget>();
 }
Пример #5
0
 void Start()
 {
     _towerTarget = GetComponent<TowerTarget>();
 }
Пример #6
0
 void Awake()
 {
     towerTarget = GetComponent<TowerTarget>();
     _AnimationController = GetComponentInChildren<AnimationController> ();
 }
Пример #7
0
 void Awake()
 {
     towerTarget          = GetComponent <TowerTarget>();
     _AnimationController = GetComponentInChildren <AnimationController> ();
 }
Пример #8
0
 protected virtual void Awake()
 {
     targetSystem = GetComponent <TowerTarget>();
     targetSystem.OnTargetAquired += TargetSystem_OnTargetAquired;
     targetSystem.OnTargetLost    += TargetSystem_OnTargetLost;
 }
Пример #9
0
 void Awake()
 {
     turretPos = turret.transform.rotation;
     _towerTarget = GetComponent<TowerTarget> ();
 }
Пример #10
0
 void Awake()
 {
     _towerTarget  = GetComponent <TowerTarget> ();
     _lineRenderer = GetComponent <LineRenderer> ();
     _lineRenderer.sortingLayerName = SortingLayers.projectiles;
 }
Пример #11
0
 void Awake()
 {
     towerTarget = GetComponent <TowerTarget>();
 }