Comments and answers for "How I can Converting a Direction Vector to Quaternion rotation?"
http://answers.unity.com/questions/631836/how-i-can-converting-a-direction-vector-to-quatern.html
The latest comments and answers for the question "How I can Converting a Direction Vector to Quaternion rotation?"Comment by egwillfriedel on egwillfriedel's answer
http://answers.unity.com/comments/1358374/view.html
This was very helpful! I used it so that a player can walk around a sphere and stay normal to the sphere. Thank you!Fri, 26 May 2017 17:44:22 GMTegwillfriedelAnswer by robertbu
http://answers.unity.com/answers/631917/view.html
I'm fuzzy about what you are looking for here. Say you have a cylinder that is on a surface and parallel to a normal and you move that cylinder to a now position on the surface so you want align with the new normal, you can do:
transform.rotation = Quaternion.FromToRotation(transform.up, hit.normal) * transform.rotation;
Backing off to what you ask for specifically, you need a reference vector. You need to define what represents zero rotation for that vector. So if you are talking about a terrain in which flat is Vector3.up, you can get the rotation:
var q = Quaternion.FromToRotation(Vector3.up, hit.normal);
'hit.normal' is the normal of the surface. Typically it is acquired from casting a ray.Tue, 04 Feb 2014 15:05:50 GMTrobertbu