x


Using RayCast to Get Mouse Input

I am really frustrated, so much so that I am going to ask this last question and walk away from the computer and wait. I'm trying to use raycasts to get the current mouse position at a click. For now, I'm instantiating an object as a debugger. Here's my code:

var particle : GameObject;
function Update () {
if (Input.GetButtonDown ("Fire1")) {
// Construct a ray from the current mouse coordinates
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray)) {
// Create a particle if hit
Instantiate (particle, transform.position, transform.rotation);
}
}
}

Now, when I play the game, when I click, it instantiates the object right at the camera's position. What am I doing wrong? Any and all help appreciated.

Elliot Bonneville

more ▼

asked Mar 22 '10 at 01:09 AM

e.bonneville gravatar image

e.bonneville
6k 104 120 165

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

You say to instantiate at transform.position, which is the camera's position (I'm assuming your script is attached to the camera). You need to create a RaycastHit variable and use the position where the raycast actually hits.

var hit : RaycastHit;
if (Physics.Raycast (ray, hit)) {
// Create a particle if hit
Instantiate (particle, hit.point, transform.rotation);

That will still use the camera's rotation; probably you want to use Quaternion.identity instead.

more ▼

answered Mar 22 '10 at 01:45 AM

Eric5h5 gravatar image

Eric5h5
102k 50 165 622

Thanks. I spent all night on that!

Mar 22 '10 at 06:52 PM e.bonneville

Would give 20 votes... If I could!

Mar 22 '10 at 06:52 PM e.bonneville

come on people! upvote it so it gets to 20!

Oct 24 '11 at 11:49 PM Jibidiah

Wouldn't you say Eric5h5 has enough karma as it is? This is a pretty simple answer! I never get 20 upvotes for basic tutorials... T.T

Oct 24 '11 at 11:52 PM syclamoth

I don't think that "having enough karma" is a good reason for not upvoting an answer if it deserves it. Not that this one particularly deserves it; it already has more than enough votes for what it is. Also, I'd discourage upvoting an answer as some sort of popularity contest. Just stick to upvoting answers if you find them helpful and don't take any other factors into consideration.

Oct 26 '11 at 02:42 AM Eric5h5
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x2406
x1364
x1313
x314

asked: Mar 22 '10 at 01:09 AM

Seen: 26283 times

Last Updated: Feb 14 '13 at 03:05 PM