Example #1
0
    // Deal Damage to nearest entity
    public void HitNearest()
    {
        var nearest = _positioning.FindNearestTagged(EnemyTag);

        if (nearest != null)
        {
            this.HitEntity(nearest);
        }
    }
Example #2
0
    // 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;
        }
    }