I may have interpreted what you want to do incorrectly, but it sounds like what you want to do is have the rocket rotate to look at a point, and then accelerate if the user is touching the screen. I'm not going to help you with the touch input part, but I will assist you in the rotation and actual movement as that seems to be what you asked for
What we need to do first is get the touches position, we need to get it in world space and we want it as a Vector 2
. The touch will be in screen space, to convert we can simply run (assuming you have one camera):
Vector3 targetPos = Camera.main.ScreenToWorldPoint(touchPosition);
http://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html
Now we have the target position we need to figure out the size of the angle needed to point to targetPos
Vector3 dir = targetPos - transform.position;
float rotZ = Mathf.Atan2(dir.x, dir.y) * Mathf.Rad2Deg;
We call it rotZ because as we are in unity 2d we want to rotate on the z axis.
Next we need to do the actual rotation, for this we need a Rigidbody2D attached. We should access this in the start method of the script
Rigidbody2D RB;
void Start()
{
//Other start work
RB = GetComponent<Rigidbody2D>();
}
Now we have the rigidbody we can do the rotation, we will use the MoveRotation() Method
RB.MoveRotation(-rotZ);
Now the ship is pointing in the right direction we need to add the acceleration, to do this we can use RB.AddForceAtPosition
float Thrust = 5.0f //The amount of force used in the push
RB.AddForceAtPosition(transform.up * Thrust, transform.up);
Hopefully this helps you. I created the post using one of my old scripts, please note that it was used in a hackathon type thing to create a gimmicky control system, so that's why there's calls to retrieve web data. https://github.com/EverlessDrop41/GravityTest/blob/master/Assets/Scripts/Ship/ShipControll.cs
EDIT: After some discussion in chat we figured out increasing drag and thrust then having and overlap circle on the point to stop the acceleration on arrival did the trick