Locking down rotation, so it wouldn't affect x,y (2D game dev)

Hey guys,
Just started developing with Unity.

I’m creating a 2D top-down-view shooter. I have a player model, and I want him to be able to move in all directions.

The problem is that I had to choose between simple X,Y movement. And movement based on rotation (but then it’s like a car).

I want him to able to move via x,y. But that his texture would follow his vector angle (so that if he would let’s say go down at a 45 degree angle, the texture would look down there, and not always up).

With rotation that was automatic and very nice, but it’s very annoying for the gameplay.
And if I try to do rotation calculation by the changing x,y coordinates, it becomes a mess, because the x,y calculation is based on rotation aswell.

Anyway to kill the x,y calculation via rotation? So rotation would only be used for the texture? Or is there a smarter way to do this?
All the examples I find in 2D are mostly space shooters, and the ship always looks up, so I can’t find any relevant info. Sorry for the messy text, been codding for far too long today. If It’s completely rubbish I will re-write this later.

Thanks. Good night.

It sounds like what you want to do is have the visible player model not be the root object that’s getting moved around. So your hierarchy would look like this:

Player_Root
   Player_Model

And you apply the x,y motion to Player_Root, but the rotation to Player_Model.

What a great idea, thanks mate.

I guess I will have to read a little bit (or a whole lot), cause my player now is a Cube GameObject. I will need to check on how can I hide the cube, and get a model to lock to him.

I’m worried about collision detection, he’s gonna get shot. I didin’t read into that yet, but I guess I just can use the model’s script as a groundbase for character related stuff, and keep the Cube-Player script for movement only.
Because the problem is with C#, that even if the GameObject has a child, you still need to access it through GameObject and GetComponent, and if I will need to do it for the model to the Player (cube) all the time, I guess it will wreak havoc on the FPS.