예제 #1
0
    void Update()
    {
        if (target == null)
        {
            Destroy(gameObject);
            return;
        }

        Vector3 direction            = target.position - gameObject.transform.position;
        float   currentdistancemoved = speed * Time.deltaTime;

        if (direction.magnitude <= currentdistancemoved)
        {
            //if (damage >= 20 && target != null)
            //{
            //    GameObject Guts = (GameObject)Instantiate(GutsEffect, gameObject.transform.position, transform.rotation);
            //    Destroy(Guts, 2f);
            //}

            GameObject Blood = (GameObject)Instantiate(Bloodeffect, gameObject.transform.position, transform.rotation);
            Destroy(Blood, 1.5f);

            EnemyBehavior2 enemyScript = target.GetComponent <EnemyBehavior2>();
            enemyScript.takeDamage(damage * damageMultiplier);

            Destroy(gameObject);
        }
        transform.Rotate(direction);

        transform.Translate(direction.normalized * currentdistancemoved, Space.World);
    }
예제 #2
0
    private void updateFurthestEnemy()
    {
        GameObject target = null;
        int        highestIndexOfTarget      = 0;
        float      highestDistanceToNextNode = 0;

        foreach (GameObject gegner in ListEnemies.enemies)
        {
            float distance = (transform.position - gegner.transform.position).magnitude;
            if (distance <= range)
            {
                EnemyBehavior2 enemyScript          = gegner.GetComponent <EnemyBehavior2>(); //machte Probleme
                int            targetIndex          = 0;
                float          distanceToTargetNode = 0;
                targetIndex = enemyScript.indexOfTargetNode;//machte auch Probleme
                GameObject targetNode = GenerateMap.PathNodes[targetIndex];
                distanceToTargetNode = (gegner.transform.position - targetNode.transform.position).magnitude;
                if (((targetIndex == highestIndexOfTarget) && (distanceToTargetNode >= highestDistanceToNextNode)) || (targetIndex > highestIndexOfTarget))
                {
                    highestIndexOfTarget      = targetIndex;
                    highestDistanceToNextNode = distanceToTargetNode;
                    target = gegner;
                }
            }
        }

        currentTarget = target;
    }
예제 #3
0
 void Start()
 {
     enemy   = GameObject.FindGameObjectWithTag("Enemy").GetComponent <EnemyBehavior>();
     enemy1  = GameObject.FindGameObjectWithTag("Enemy1").GetComponent <EnemyBehavior1>();
     enemy2  = GameObject.FindGameObjectWithTag("Enemy2").GetComponent <EnemyBehavior2>();
     enemy3  = GameObject.FindGameObjectWithTag("Enemy3").GetComponent <EnemyBehavior3>();
     enemy4  = GameObject.FindGameObjectWithTag("Enemy4").GetComponent <EnemyBehavior4>();
     enemy5  = GameObject.FindGameObjectWithTag("Enemy5").GetComponent <EnemyBehavior5>();
     enemy6  = GameObject.FindGameObjectWithTag("Enemy6").GetComponent <EnemyBehavior6>();
     enemy7  = GameObject.FindGameObjectWithTag("Enemy7").GetComponent <EnemyBehavior7>();
     enemy8  = GameObject.FindGameObjectWithTag("Enemy8").GetComponent <EnemyBehavior8>();
     enemy9  = GameObject.FindGameObjectWithTag("Enemy9").GetComponent <EnemyBehavior9>();
     enemy10 = GameObject.FindGameObjectWithTag("Enemy10").GetComponent <EnemyBehavior10>();
     enemy11 = GameObject.FindGameObjectWithTag("Enemy11").GetComponent <EnemyBehavior11>();
     enemy12 = GameObject.FindGameObjectWithTag("Enemy12").GetComponent <EnemyBehavior12>();
     enemy13 = GameObject.FindGameObjectWithTag("Enemy13").GetComponent <EnemyBehavior13>();
     enemy14 = GameObject.FindGameObjectWithTag("Enemy14").GetComponent <EnemyBehavior14>();
     enemy15 = GameObject.FindGameObjectWithTag("Enemy15").GetComponent <EnemyBehavior15>();
     attack  = GetComponent <AudioSource>();
 }