Quaternion.Slerp in a semisphere

Hello, i have a orbit camera who’s moving on a semishpere. I have a plane with some other objects over it.
In the middle of the scene there is an empty object that i’m using as a pivot for my camera,all is working as intended. I say sempisphere because i do not want to go “under” the plane, infact i have a control to avoid it.

Now i want to look at an object and smmothly rotate in that direction.
To do so i’m using this code:
void Update () {

		// Smoothly rotates towards target 
		Vector3 targetPoint = myObj.transform.position;
		Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position, Vector3.right);
		transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2f);

The problem is that some objects are pointed from “below” the plane i have set in my scene.
How can i avoid it?


Just a shot in the dark here but I think your camera parent (the emptyObject) might just be oriented the wrong way around. Try dragging your camera out of the parent. Then select the emptyObject and select the move tool. Make sure the handle is set to local and not global. Rotate the emptyObject so the blue arrow is pointing in the “forwards” direction (The direction you want your camera to look) and the green arrow towards the sky. Then drag the camera into the emptyObject again also facing in the forward direction. Then change “Quaternion.LookRotation(targetPoint - transform.position, Vector3.right);” to “Quaternion.LookRotation(targetPoint - transform.position, Vector3.up);” or just “Quaternion.LookRotation(targetPoint - transform.position);”
Hope that helps.