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; } } } }
private void Update() { if (en.isAlive()) { float distanceToEnemy = Vector3.Distance(transform.position, player.transform.position); if (distanceToEnemy <= range) { animator.SetBool("PlayerInRange", true); agent.SetDestination(player.position); } else { animator.SetBool("PlayerInRange", false); } } else { agent.SetDestination(transform.position); transform.LookAt(player.transform); animator.SetTrigger("PlayerIsDead"); } }