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; }
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; } } } }