- Home /
layers not ignored by raycast
Hey,
I'm doing 4 raycasts from my character; up, down, forward, backward, so he won't be able to move when he hits something. I want to ignore a certain few objects that the character should be able to move through. I've made a new layer and selected it on my objects.
I've made a new layermask variable and selected the new layer in it. Then when I do a raycast, it doesn't ignore the layer, because my character still stops when it hits the object. The objects have colliders set as triggers so that shouldn't be the problem.
Here's the code:
bool rayboolforward = Physics.Raycast (transform.position, transform.forward, 3f, layersToIgnore );
bool rayboolbackward = Physics.Raycast (transform.position, -transform.forward, 3f, layersToIgnore);
if(!rayboolforward && !rayboolbackward)
{
//do something
}
layerstoignore is the public variable.
I've also tried to use
int layermask = 1 << 10;
bool rayboolforward = Physics.Raycast (transform.position, transform.forward, 3f, layermask );
bool rayboolbackward = Physics.Raycast (transform.position, -transform.forward, 3f, layermask);
But this doesn't help either.
I tried to get some more info:
RaycastHit hit;
int layermask = 1 << 10;
bool rayboolforward = Physics.Raycast (transform.position, transform.forward, out hit, 3f, layermask );
bool rayboolbackward = Physics.Raycast (transform.position, -transform.forward, out hit, 3f, layermask);
but anything I try to do with 'hit' results in a nullreferenceexception.
Not sure what I'm doing wrong. Any one who can help me with this?
Answer by AeonIxion · Apr 30, 2015 at 01:16 PM
Found the answer myself. I forgot to invert the bitmask. Added the following code to the start function and it worked:
layersToIgnore = ~layersToIgnore;
Your answer
Follow this Question
Related Questions
How to create User layer that acts like the "Ignore Raycast" layer? 1 Answer
Raycast not ignoring layer 0 Answers
raycast ignore layer by default not using layermask. 1 Answer
Is it possible to allow a raycast to pass through a collider to hit things behind it? 6 Answers
RaycastHit returns object without collider, in wrong layer 1 Answer