- Home /
Third Person Camera Collision Clips through ground and wall
I ran in to a bit of trouble while making the collision for the camera. I have been trying to figure out a way to make the collision detection in unity until I stopped at Linecast. I have finally figured out the collision detection and now the camera moves near the player when it collider with a wall. But the problem is that if I move really close to the wall/ground, I can see through the wall and ground. I think its due to the Linecast not detecting the collision. And by the time the collision is detected, the camera is halfway through the wall/ground. My Linecast starts at the player and ends at the camera middle point. I am not sure how to resolve this. Here is my full camera script.
public bool lockCursor;
public float mouseSensitivity = 10;
public Transform target;
public float dstFromTarget = 2;
public Vector2 pitchMinMax = new Vector2 (-40, 85);
public float rotationSmoothTime = .12f;
Vector3 rotationSmoothVelocity;
Vector3 currentRotation;
float yaw;
float pitch;
public LayerMask collisionMask;
void Start() {
if (lockCursor) {
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
}
void LateUpdate()
{
yaw += Input.GetAxis("Mouse X") * mouseSensitivity;
pitch -= Input.GetAxis("Mouse Y") * mouseSensitivity;
pitch = Mathf.Clamp(pitch, pitchMinMax.x, pitchMinMax.y);
currentRotation = Vector3.SmoothDamp(currentRotation, new Vector3(pitch, yaw), ref rotationSmoothVelocity, rotationSmoothTime);
transform.eulerAngles = currentRotation;
transform.position = target.position - transform.forward * dstFromTarget;
CameraCollision();
}
void CameraCollision()
{
RaycastHit hit;
if (Physics.Linecast(target.position, transform.position, out hit, collisionMask))
{
transform.position = target.position - transform.forward * hit.distance;
}
}
Your answer
Follow this Question
Related Questions
3rd person camera through wall 2 Answers
Camera movement in a Third Person Shooter Game 2 Answers
Camera Rotates Incorrectly 2 Answers
how to create a TPS camera view? 1 Answer
Align the center of Camera towards a position in the world 2 Answers