How to write turret aiming for enemy AI 2d side tank?

Hi
I am writing enemy AI script for my 2d tank game. Some one can tell me how can I write script for my enemy tank to aim and shoot player?
I want enemy tank turret >> transform >> rotation.Z be change for aim.
when player move in enemy distance action enemy turret rotation.z change to aim and shoot player


blue tank is player.

it is my code for enemy tank:

public class Enemy : MonoBehaviour
{
    [SerializeField]
    private GameObject _target;

    [SerializeField]
    private GameObject _firePoint;

    [SerializeField]
    private GameObject _bulletPrefab;

    private GameObject _newBullet;

    [SerializeField]
    private Transform _turretTransform;

    [SerializeField]
    private float _speedBullet = 12f;
    [SerializeField]
    private float _aimSpeed = 12f;
    [SerializeField]
    private float _combatDistance = 10f;
    [SerializeField]
    private float _fireRate = 1f;
    [SerializeField]
    private float _targetDistance;
    private float _nextFire = 0f;

    private Rigidbody2D _rb2dBullet;
    private bool _isBulletActiv = false;    

    [HideInInspector]
    public Vector2 force;

    private void FixedUpdate()
    {
        PrepareForShoot();

        if (_newBullet == null)
        {
            InstanceBullet();
            DeactiveRigid();
        }

        force = -_firePoint.transform.right * _speedBullet;

        if (_isBulletActiv == true)
        {
            BulletTrueRotation();
        }

    }

    private void PrepareForShoot()
    {
        if (_target != null)
        {
            _targetDistance = Vector3.Distance(_target.transform.position, transform.position);

            if (_targetDistance < _combatDistance)
            {
                Shoot();
            }
        }   
    }

    private void Shoot()
    {
        if (_isBulletActiv == false && Time.time > _nextFire)
        {
            _nextFire = Time.time + _fireRate;
            _isBulletActiv = true;
            _rb2dBullet.isKinematic = false;
            _rb2dBullet.velocity = force;
        }
    }
    private void InstanceBullet()
    {
        _newBullet = Instantiate(_bulletPrefab, _firePoint.transform.position, _firePoint.transform.rotation, _firePoint.transform);

        _rb2dBullet = _newBullet.GetComponent<Rigidbody2D>();
    }

    private void DeactiveRigid()
    {
        _isBulletActiv = false;
        _rb2dBullet.velocity = Vector3.zero;
        _rb2dBullet.angularVelocity = 0f;
        _rb2dBullet.isKinematic = true;
    }

    private void BulletTrueRotation()
    {
        float truelook = Mathf.Atan2(-_rb2dBullet.velocity.y, -_rb2dBullet.velocity.x) * Mathf.Rad2Deg;
        _newBullet.transform.rotation = Quaternion.AngleAxis(truelook, Vector3.forward);
    }

}

Google mal waagerechter Wurf in der Physik