public IEnumerator Run(EnemyPathNode start) { var instance = GameObject.Instantiate(enemyPrefab); hp = instance.GetComponent<Enemy>().Health; instance.transform.position = start.transform.position; var follow = instance.GetComponent<FollowPathEnemy>(); follow.nextNode = start; yield return null; }
void Awake() { startNode = GetComponent <EnemyPathNode>(); if (spawns == null) { spawns = new List <Spawn> (); } SpawnWavesIsRunning = false; }
public IEnumerator Run(EnemyPathNode start) { for (var i = 0; i < size; i++) { var instance = GameObject.Instantiate(enemyPrefab); instance.transform.position = start.transform.position; instance.GetComponent <Enemy>().Health *= hpMultiplyer; var follow = instance.GetComponent <FollowPathEnemy> (); follow.nextNode = start; if (i < size - 1) { yield return(new WaitForSeconds(interval)); } } }
protected void UpdateVelocityForPath() { if (nextNode == null) { body.velocity = Vector2.zero; OnReachedEnd(); return; } var delta = nextNode.transform.position - transform.position; if (delta.magnitude <= epsilon) { nextNode = GetNextNode(); // this should choose based on the path its on? UpdateVelocityForPath(); } else { delta.Normalize(); body.velocity = speed * delta; } }
public void UpdateDestination() { destinationNode = path.getNextNode(pathNodeIndex); if(destinationNode == null) { LevelController.Instance.EnemyReachedTown(this); round.decreaseActiveEnemies(); Destroy(this.gameObject); return; } float randomX = Random.Range(0.0f, 0.2f); float randomZ = Random.Range(0.0f, 0.2f); Vector3 pos = destinationNode.transform.position; pos.x += randomX; pos.z += randomZ; destination = pos; pathNodeIndex++; }