I appreciate any help you can offer me. I created a script for a character controller that casts two rays below the player's gameobject. The rays extend infinitely and should collide with another gameobject called terrain. The player is directly above the terrain, so the Raycast must return information about that collider (terrain has a BoxCollider2D). The code I'm using is below. Thank you so much for your time and your help.
Why won't my Raycast hit the BoxCollider2D that is directly in front of it?
public int distanceFromCenter; // set to 1 in inspector private float rayDistance = Mathf.Infinity; void Update () { Vector3 transformUp = transform.up; Vector3 transformRight = transform.right; RaycastHit leftRayHitInfo; RaycastHit rightRayHitInfo; Vector3 leftRayOrigin = transform.position + distanceFromCenter * transformRight; Vector3 rightRayOrigin = transform.position - distanceFromCenter * transformRight; Ray leftRay = new Ray(leftRayOrigin,-transformUp); Ray rightRay = new Ray(rightRayOrigin,-transformUp); Debug.DrawRay (leftRayOrigin,-transformUp*5000,Color.white); // for visualization Debug.DrawRay (rightRayOrigin,-transformUp*5000,Color.white); // for visualization bool castLeftRay = Physics.Raycast (leftRay, out leftRayHitInfo, rayDistance); bool castRightRay = Physics.Raycast (rightRay, out rightRayHitInfo, rayDistance); if (castLeftRay) { Debug.Log ("leftray true"); } else { Debug.Log ("leftray false"); // the console always prints this } }