Beispiel #1
0
    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;
        
    }
Beispiel #2
0
    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;
        }
    }
Beispiel #5
0
    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++;
    }