- Home /
move a object hit by raycast
I hit a gameObject with my raycast by the help of assinging a tag. Now i want to get the gameObject i hit and move it to a position via the same script. How would i be able to do that?
hit.gameObject.transform.position doesnt work but i want it to look something like that.
Answer by Fappp · Apr 21, 2015 at 09:45 AM
This might not work, but I suggest you want it to look something like this! To get better answers, expand the question or ultimately provide examples of your code/scene.
Be sure to raycast properly.
var hitGO : GameObject;
hitGO = hit.gameObject;
Update(){
var camera = GetComponent.<Camera>();
var mousePos = camera.ScreenToWorldPoint(Input.mousePosition);
}
if ( Input.GetMouseButtonDown(0) ){
hitGO.transform.position = Vector3(mousePos.x,transform.position.y,mousePos.z);
}
i used your advice and made it work! i also write in c# so here is the solution:
after u cast the ray if in the if statement:
//call the variable of the gameObject GameObject block = hit.collider.gameObject; //use the new variable and transform its position block.transform.position = new Vector3(transform.position.x,transform.position.y, -1); //or etc
the thing to do was to call the gameObject variable after u use the raycast in the same {}. then set it to hit.collider.gameObject ins$$anonymous$$d of hit.gameObject or else it will be error.
Thanks!
Answer by idurvesh · Apr 21, 2015 at 02:47 PM
Do something like this,
In other object which you want to move ,Add move functionality, if you want constantly move object then use Vector3.lerp or Vector3.MoveTowards + coroutines else use rigidbody.AddForce
Once object hit by ray cast do this,
if(hit.gameobject.tag == "DesireObject")
{
//run this function
hit.gameObject.getComponent<MovementScript>().movementFUnction();
}
Hope that help you, let me know if you still face same problem.
Its not entirely what i was looking for as im going to change static objects, but this script is this still really good and i think i will make use of it later.
Thanks!