- Home /
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
Answer by Eric5h5 · Mar 22, 2010 at 01:45 AM
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.
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
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.
Your answer
Follow this Question
Related Questions
How do you use a queuing mechanism in Unity? 1 Answer
GetMouseButtonDown(1) true in multiple frames 1 Answer
Detect if object clicked on 2 Answers
Simulate a mouse Click? 2 Answers
click on a game object that script isn't attached to 1 Answer