- Home /
How to assign a game object with a raycast?
Lets say I do a raycast like this:
var mouseray = Camera.main.ScreenPointToRay(Input.mousePosition);
var rayhitlocation : RaycastHit;
layerMask = ~(1 << 9);//invert bitshift to exclude only layer 9 from raycast
Physics.Raycast(mouseray, rayhitlocation, Mathf.Infinity, layerMask);
How would I assign a GameObject in my scene from whatever the raycast hit? So far, I think it's purely syntax that I am getting wrong, but I'm not sure. I've also tried using the "collider.Raycast()" function like this:
if (collider.Raycast(mray, rayhitlocation, Mathf.Infinity)) {
selected = true;//set rayhit object to selected
Unitmanager.unit = this.gameObject;
renderer.material.color = Color(.13,.97,.20,1);
//rigidhit = target.collider.attachedRigidbody;
}
I had another script with a static GameObject variable (script called Unitmanager), that I tried to assign the collider from the raycast to be the gameObject that it hit, but again it didn't work.....
So how can I grab a specific GameObject from a raycast? Should I use the collider.Raycast or the physics.Raycast as well?
Answer by Berenger · May 11, 2012 at 04:15 PM
Your almost correct, except that you're doing all the modification on the gameobject casting the ray, which I doubt is what you want. You want the object hit by the ray to be modified, and you can access it with rayhitlocation.collider.gameObject.
Your answer
Follow this Question
Related Questions
Ray cast collider recognition and execution of a script attached to hit object 1 Answer
Get collider from raycast 4 Answers
how to move an object clone to mouse position, i dont understand ? 1 Answer
Moving objects using raycasting? 1 Answer
Raycast starts ignoring gameobject after a few seconds 0 Answers