Unity3D and Raycasts in a 2D Scene

Note to self: When using RaycastHit2D in Unity make sure that the GameObjects you’re attempting to collide with have a Rigidbody component or those rays are going to shoot right on through!  In a 2D scene where you’re not bothered about gravity its helpful to make those Rigid bodies kinematic as well else they’ll fall to nowhere. #stilllearning

An example detecting a GameObject located below a touch event:

 

Touch touch = Input.touches [0];

Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit2D hit = Physics2D.GetRayIntersection(ray);

if (hit) {
    Debug.Log ("Hit: " + hit.transform.gameObject.name);
    // Do something with the GameObject...
}

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>