angle help

Ive been trying to figure out how to show the direction of wind in my 3d game. I have a 2d UI Image and im changing the z rotation based on the angle of the wind and ball.

Vector3 windDirection = new Vector3(1f, 0f, 0f);
float angle = Vector3.Angle(ball.transform.forward, windDirection);
     imageArrow.transform.rotation = Quaternion.Euler(0, 0, angle);

The problem Im having is when I rotate the ball right a would think the arrow should rotate left but it is also rotating right. Ive been googling this for the past 2 days and really need some help.

I think I figured it out. Changes below.

Vector3 dir = ball.transform.forward - GameHelper.windDirection;
        float angle = Mathf.Atan2(dir.x, dir.z) * Mathf.Rad2Deg;
   
     imageL.transform.rotation = Quaternion.Euler(0, 0, angle);

This doesn’t work. I noticed that when I rotate the z axis over 45 degrees either way it messes up the angle. Ive tried everything I can think of all day. any help would be great.

I guess the easiest thing would be to have the arrow look in the direction of the wind:

imageArrow.transform.rotation = Quaternion.LookRotation(windDirection);