void Start()
 {
     agent = gameObject.GetComponent <NavMeshAgent>();
     agent.SetDestination(player.position);
     en             = player.GetComponent <SpaceGhostMoviment>();
     animator       = GetComponent <Animator>();
     agent.speed    = Random.Range(2.5f, 4.5f);
     animator.speed = agent.speed / 3.5f;
 }
Exemple #2
0
    void Damage(Transform enemy)
    {
        SpaceGhostMoviment en = enemy.GetComponent <SpaceGhostMoviment>();

        if (en != null)
        {
            en.TakeDamage(damage);
        }
    }
    void UpdateTarget()
    {
        GameObject[] enemies          = GameObject.FindGameObjectsWithTag(enemyTag);
        float        shortestDistance = Mathf.Infinity;
        GameObject   nearestEnemy     = null;

        foreach (GameObject enemy in enemies)
        {
            SpaceGhostMoviment en = enemy.GetComponent <SpaceGhostMoviment>();
            if (en != null)
            {
                if (en.isAlive())
                {
                    float distanceToEnemy = Vector3.Distance(transform.position, enemy.transform.position);

                    if (distanceToEnemy < shortestDistance)
                    {
                        shortestDistance = distanceToEnemy;
                        nearestEnemy     = enemy;
                    }

                    if (nearestEnemy != null && shortestDistance <= range)
                    {
                        target = nearestEnemy.transform;
                    }
                    else
                    {
                        target = null;
                    }
                }
                else if (!en.isAlive() && target == en.transform)
                {
                    target = null;
                }
            }
        }
    }