Move a Rigidbody with force where force vector is being changed by camera

Hello.
I am moving a rigid body with force which is in direction of camera. I am using camera orbit type script so camera can rotate around ball. now when camera is at minimum angel as in image 1. force is maximum because, but problem arises when camera goes over ball like in image 2. I want to maintain this vector so it can maintain it’s maximum force value.

Here is my code :

   `if(Input.GetKey(KeyCode.W) || FwdKey)
	{
		Vector3 forwardDir = rb.position - camDir.position;
		forwardDir.Normalize();
		Vector3 force = forwardDir;		
		rb.AddForce(force  * mul , ForceMode.Force);
	}`

Is there any way to find this angle? or maintain maximum force value?
Thank you all.

Vector3 forwardDir = rb.position - camDir.position;

To find the angle between this vector and (what looks like in your picture), the vertical down vector, you can use

float angle= Vector3.Angle(forwardDir,Vector3.down);