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); } } } } }
void OnTriggerEnter(Collider other) { if (other.attachedRigidbody != null) { WaypointMovement move = other.attachedRigidbody.gameObject.GetComponent <WaypointMovement> (); if (move != null) { move.CollideWithWaypoint(gameObject); } } }
/// <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(); }
private void Awake() { movement = GetComponent <WaypointMovement>(); enemyCollider = GetComponent <Collider>(); movement.ReachedDestination += ReachedDestination; }