- Home /
2D mouse aiming C#
Hi,
I'm trying to make a 2D mouse aiming system for my side scroller game. I have no idea how to track the mouse movement smoothly and making it easy on the system, I've had a look at ray-casting however I don't quiet understand how it works so any help with really be appreciated!I would prefer to program it in C#.
Thanks!
If your tracking is for the purpose of ai$$anonymous$$g, then @iwaldrop suggestion of Camera.ScreenToWorldPoint() is the easiest way to go. If you are trying to interact or detect object then you want to raycast. Drop in the last example on the Physics.Raycast() page into a script. Then Google "unity3d raycast collider" for thousands of posts on raycasting and colliders.
Answer by Nepoxx · May 05, 2013 at 04:39 AM
It is unclear whether you want to aim towards the cursor (so that your in-game character can aim his gun towards the location pointed by the user's cursor), or aim using the cursor (so that you can pick stuff up with your cursor, for example).
Aiming towards the cursor is trivial, especially if your 2d is on the Z plane, you simply need take the X and Y coordinates of your mouse but use the Z value of your plane.
Picking stuff up with your mouse is a little more complicated, but iwaldrop and robertbu gave great comments. Basically you want to cast a ray from the location of your cursor towards the location the camera is looking at. Then using that ray, you can collide it with your scene and find out which object (or location) is hit.
Hopefully I wasn't too vague. :)
Answer by RavenOfCode · Dec 05, 2015 at 04:34 PM
Here is my best answer: It includes c# and js versions
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Disabling a script in runtime 2 Answers
How to disable MouseLook in ingame pause. 1 Answer
Illuminating a 3D object's edges OnMouseOver (script in c#)? 1 Answer