- Home /
Rotate parent object so that child is facing camera
Hi, everyone. I need a bit of help.
I'm trying to calculate a Quaternion for rotating the parent object so that its child is facing the camera.
My camera is "looking" at the scene origin (0, 0, 0).
In the game I'm making, the user can rotate the main game object. When the user stops rotating I want it to snap-rotate so that the child that's nearest to camera completely rotates, facing the camera.
I've already made the algorithm that calculates which child object is closest to facing the camera, and now I want to calculate the rotation of the parent object so that child completely faces the camera.
I've tried doing this with:
destinationRotation = parentObject.transform.rotation * Quaternion.FromToRotation(nearestChild.transform.forward, -camera.transform.forward);
But it's wonky and sometimes snaps at 45 degrees against the camera, instead of facing it.
I'm stuck and would appreciate any sort of help. Thanks!
Try reversing the calculation:
destinationRotation = Quaternion.FromToRotation(nearestChild.transform.forward, -camera.transform.forward) * parentObject.transform.rotation;
Untested, but this would have been my first thought on how to solve this problem.
hmmm, why not trying to store facing rotations for every single child object, put them on a list and call when needed? you would have current rotation and target rotation and rotate as wished.
Your answer
Follow this Question
Related Questions
Make a simple tree 1 Answer
Child affecting parent rigidbody? 1 Answer
How to smoothen movement of a child object? 1 Answer
How to change position of child component without affecting the position of the parent 1 Answer
How can I prevent position of a child transform to be hooked to the parent in a prefab? 1 Answer