How to Make Sprite of Rocket Change Rotation in Flight?

Ok this is pretty much a continuation of my original question regarding shooting projectiles/missiles. I finally got the rocket to shoot in the direction it is facing. :slight_smile: Now I was wondering how you would get the rocket to naturally change its rotation in flight? I did some looking up of old Unity Forum questions and the closest I found was a discussion about the lack of aerodynamics in Unity. I think you guys probably know what I am asking but just in case let me clarify what I am talking about.

Say I am shooting a rocket forward at a 60 degree angle. This is the initial rotation angle of the rocket on the Z axis. Thanks to previous help I now have the rocket shooting in the initial angle with a given force. The problem though is it pretty much stays at that angle the entire flight path. The rocket will follow a curve according to the amount of force and gravity, but the angle will always remain the same until another object hits it or stops it. It then dawned on me that it seemed as though the physics engine was treating it as if it was a single weight and did not care about its shape. I then thought that if I can somehow make the front of the rocket heavier that it would naturally start to tip forward once it hit the peak of the curve and then start to point down as it falls.

I first tried creating another hidden rigid body behind the rocket and then add that to my prefab but that did not work out too well. I then manually added code that changed the Z rotation during flight, but this is artificial just for looks. Is there a way to naturally do this, or are we forced to come up with our own code that fakes aerodynamics?

var dir = rigidbody2D.velocity;
var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);

Try this Code in Update function of rocket,its working
transform.rotation = Quaternion.LookRotation(rigidbody.velocity);