I'm trying to make a 2D game, and an important mechanic of it is to have a character follow the mouse's position on screen. I have found a method to do it, but I'm having difficulty having it work accurately and have mostly accomplished it by applying variables to the calculation. I am first giving the character a reference to the camera of the scene as myCamera as well as some serialized references I've called cameraFactorX, cameraOffsetX, cameraFactorY, and cameraOffsetY so I may easily alter them in Unity. Then I added the following lines into the Update method in the character's script: Vector2 mouseNow = Input.mousePosition; transform.position = new Vector3 ((mouseNow.x+myCamera.transform.position.x)*cameraFactorX+cameraOffsetX,(mouseNow.y+myCamera.transform.position.y)*cameraFactorY+cameraOffsetY,transform.position.z); The camera's position is currently at (0, 0) and set at Size = 3. It has taken me setting the values of cameraFactorX and CameraFactorY to 0.0112, cameraOffsetX to -6.8, and cameraOffsetY to -3.03 before the character seemed close enough to the mouse cursor. But I have noticed that this only works as long as the camera stays at position (0, 0) and doesn't move. Changing the camera's position also has negligible effect on where the character is in the game's space but is then displaced from the mouse. Is there a more reliable and easier process to use to get the results I need so a character will follow the mouse regardless of where the camera is looking?