Linecast between character and camera doesn't ignoring Characters collider.

I want to make camera get position from collision WITH WALL (in order to see character when he stand back to a wall).
In order of this I:

  1. create a layer and give this layer to my character (and all its children object)
  2. casts a line (Physics.Linecast) between camera and character with invert mask with this layer, which I make invert.

But instead of IGNORE the players collider (via layerMask), Linecast somehow MAKE A COLLISION WITH CHARACTER’S own collider give this position to the camera, disregarding an exception of its layer.
I try the whole week but I don’t know what to do =( Please somebody help me fix this problem via Linecast (or Raycast).

RaycastHit hit = new RaycastHit ();
int layerMask = 1 << 8;
layerMask = ~layerMask; //invert a bitmask - we want to collide against everything except layer 8

if (Physics.Linecast(lookAt.position, camTransform.position, out hit, layerMask))
{
	Debug.Log (hit.point);
	camTransform.position = hit.point;
}

alt text

Is your player assigned to layer 8? Have you tried projecting from a point just in front of your player instead? There is an example here - Unity - Scripting API: Physics.Raycast

It also seems to suggest using Raycast will ignore colliders attached to the origin.

Try Changing your layer mask to

Int whateveryourlayerpropertyis = LayerMask.GetMask(“Name Of Your Layer”);

then invert that and put it in.

whateveryourlayerpropertyis = -whateveryourlayerpropertyis;

i think this should work. i always use Get Mask for layers. It will always work.