Question by
c3534l · Feb 14, 2017 at 01:53 AM ·
raycastinglayersspherecast
I can't get layers/spherecasting to work.
I started a new scene and created three cubes. For two of the cubes, I attached the following code and placed in the "Waypoint" layer:
public class Waypoint : MonoBehaviour {
public List<Waypoint> neighbors = new List<Waypoint>();
public float checkNeighborDistance = 10f;
void Start () {
LayerMask waypointLayer = LayerMask.NameToLayer("Waypoint");
//LayerMask waypointLayer = 1 << LayerMask.NameToLayer("Waypoint");
//int waypointLayer = LayerMask.GetMask("Waypoint");
//int waypointLayer = 1 << LayerMask.GetMask("Waypoint");
//int waypointLayer = LayerMask.GetMask("Waypoint") << 8;
//LayerMask waypointLayer = LayerMask.GetMask("Waypoint");
Vector3 pos = transform.position;
RaycastHit[] hits = Physics.SphereCastAll(pos, checkNeighborDistance, transform.forward, waypointLayer);
foreach (RaycastHit hit in hits) {
Debug.DrawLine(transform.position, hit.collider.gameObject.transform.position, Color.blue, 5f);
if (!Physics.Linecast(transform.position, hit.collider.gameObject.transform.position, waypointLayer)) {
Debug.DrawLine(transform.position, hit.collider.gameObject.transform.position, Color.red, 20f);
neighbors.Add(hit.collider.gameObject.GetComponent<Waypoint>());
}
}
}
}
I tried every one of those commented out variations on this new scene. In each case, a blue line was drawn to every cube, including the one in the default layer. There were never any red lines.
Comment
Your answer