The title might be a bit hard to understand. I’m trying to make a 2D fighting game (strange but it might be very cool) and I want the character to face the mouse. Using mouse.Hit isn’t an option since my character should only be able to face either left or right.
I thought that I could maybe compare the mouse.X in some way to see if the mouse was on the left or the right of the character, but the character doesn’t have a variable that tells you where the character is on the screen sadly. Maybe I could attach a GUI object to the character and use GuiObject.Position…
Compare it to the mouse 2D position. If mouse.X < player.X then you’re facing left, otherwise right.
You can use
local diff = mousePosition - player2DPosition
local angle = math.atan2(diff.Y, diff.X)
and now you have the angle that the player → mouse vector makes with the horizon. You could use this for example to aim a gun or something.
Another way would be to use physics groups and raycast the mouse with Mouse.UnitRay towards a plane that covers your entire game and compare the hit position with the player’s 3D position. That’ll probably give you a more “correct” answer.