unity velocity rotation code example
Example 1: set rotation to velocity unity
transform.rotation = Quaternion.LookRotation(rigidbody.velocity);
Example 2: interpolate rotation unity3d
//using the cross-product is quite effective
//Note: This is quite usefull for rigidbodys...
//but you can also use that for transform with some code adjustments
Vector3 targetDir;
Vector3 currentDir = transform.forward; //whatever your currentDir is
//the cross product returns the axis you want to rotate around
Vector3 crossProduct = Vector3.cross(targetDir, currentDir);
float magnitude = crossProduct.magnitude;
rigidbody.angularVelocity = crossProduct.normalized * speed * magnitude;