// Deal Damage to nearest entity public void HitNearest() { var nearest = _positioning.FindNearestTagged(EnemyTag); if (nearest != null) { this.HitEntity(nearest); } }
// Update is called once per frame void Update() { GameObject nearestEnemy = _positioning.FindNearestTagged(EnemyTag); if (nearestEnemy == null) { return; } bool isMoving = _navAgent.velocity.magnitude > 0.1f; if (_positioning.DistanceTo(nearestEnemy) < Range && (Time.time - TimeOfLastShot) > CooldownTime && !isMoving) { ShootEntity(nearestEnemy); TimeOfLastShot = Time.time; DirOfLastShot = nearestEnemy.transform.position - this.transform.position; } }