- Home /
Alternative to ScreenPointToRay needed
Hi,
I have a camera script that relies on main camera and ScreenPointToRay, but am now trying to implement a more elaborate camera management script.
Basically, I have a 'focus' object which position is conformed to the character controller plane, with an update function that sets the focus position to the ScreenPointToRay collision. Simply put, the focus position changes in x and z only, as you move the mouse around the character controller.
The problem is that, if I move the camera, the 'focus' position changes, since I ScreenPointToRay from the camera!
Is there a way to, say, 'ScreenPointToRay' from a world position, rather than a camera?
I basically need to retrieve the world coordinates of an 'Input.mousePosition', with a ray that originates from a world point, rather than a camera.
Any help appreciated.
Thanks.
"Is there a way to, say, 'ScreenPointToRay' from a world position, rather than a camera?"
Then it is just a regular ray from point A to point B... If you need it from the position of mouse but in world coords, you could use ScreenToWorldPoint and then cast your ray...
Can you explain a little more what you want here, because what you are asking doesn't make sense... in particular, an "Input.mousePosition" does not have a single world coordinate - a mouseposition is a 2d point, so it represents a ray in a 3d world. You need more information to figure out how to fill out that 3rd dimension. $$anonymous$$aybe what you want is the point at which the ray representing the mouse click intersects some other object or plane?
Answer by DaveA · Nov 21, 2011 at 09:12 PM
The example on this page will let you read out the world position under the mouse pointer: http://unity3d.com/support/documentation/ScriptReference/Input-mousePosition.html
You can set your focus to that point.