private void HandleCameraCollisions()
{
float targetPosition = defaultPosition;
RaycastHit hit;
Vector3 direction = cameraTransform.position - cameraPivot.position;
direction.Normalize();
if (Physics.SphereCast
(cameraPivot.transform.position, cameraCollisionRadius, direction, out hit, Mathf.Abs(targetPosition), collisionLayers))
{
float distance = Vector3.Distance(cameraPivot.position, hit.point);
targetPosition =- (distance - cameraCollisionOffset);
}
if(Mathf.Abs(targetPosition) < minCollisionOffset)
{
targetPosition = targetPosition - minCollisionOffset;
}
cameraVectorPosition.z = Mathf.Lerp(cameraTransform.localPosition.z, targetPosition, 0.2f);
cameraTransform.localPosition = cameraVectorPosition;
}