Пример #1
0
    void Update()
    {
        List <Unit> selectedUnits = unitSelection.selectedUnits;

        //- Command Selected -----------------------------=
        //
        if (Input.GetMouseButtonDown(1) && selectedUnits.Count > 0)
        {
            Ray        r = selectionCamera.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(r, out hit))
            {
                GameObject waypoint = GameObject.Instantiate(waypointTemplate);
                waypoint.transform.position = hit.point;

                foreach (Unit u in selectedUnits)
                {
                    WaypointMovement wm = u.GetComponent <WaypointMovement>();
                    if (wm != null)
                    {
                        wm.AssignWaypoint(waypoint);
                    }
                }
            }
        }
    }
Пример #2
0
 void OnTriggerEnter(Collider other)
 {
     if (other.attachedRigidbody != null)
     {
         WaypointMovement move = other.attachedRigidbody.gameObject.GetComponent <WaypointMovement> ();
         if (move != null)
         {
             move.CollideWithWaypoint(gameObject);
         }
     }
 }
Пример #3
0
        /// <summary>
        /// Spawning enemies
        /// </summary>
        /// <param name="wave"></param>
        /// <returns></returns>
        private IEnumerator SpawnWave(Wave wave)
        {
            for (int i = 0; i < wave.WaveSize; ++i)
            {
                // Instantiate(prefab);
                GameObject       obj = ObjectPooler.Instance.GetPooledObject(wave.Enemy);
                WaypointMovement wm  = obj.GetComponent <WaypointMovement>();
                wm.SetWaypoint(start);
                wm.ReachedDestination += EnemyReachedDestination;
                Enemy enemy = obj.GetComponent <Enemy>();
                enemy.Died += EnemyDied;

                obj.transform.position = start.transform.position;
                obj.SetActive(true);

                yield return(new WaitForSeconds(wave.SpawnRate));
            }

            wave.UpgradeWave();
        }
Пример #4
0
 private void Awake()
 {
     movement      = GetComponent <WaypointMovement>();
     enemyCollider = GetComponent <Collider>();
     movement.ReachedDestination += ReachedDestination;
 }