Camera Collision Didn't Work. Please Help me...

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

 public class ThirdPersonCam : MonoBehaviour {
 
     [Header("Player to follow")]
     public Transform target;
 
     public float mouseSensitivity = 5;
     public float dstFromTarget = 14; // 9 atau 15
     //public float zoomSmooth = 100;
 
     public float maxDistance = 15;
     public float minDistance = 7;
 
     public bool smoothFollow = true;
 
     public float smooth = 5.0f;
 
     public Vector2 pitchMinMax = new Vector2 (-40, 85); // maksimum and minimum pitch rotation
     public bool lockCursor;
 
     public float rotationSmoothTime = .12f;
     Vector3 rotationSmoothVel;
     Vector3 currentRotation;
 
     float yaw, pitch;
     public bool state;
     public PlayerMovement playerMov;
 
     //cam colission var
     [Header("Layer(s) to include")]
     public LayerMask CamOclusion;  
     Vector3 dollyDir;
     Vector3 camPosition;
     public float distance;
 
 
 
     void Start () {
         
         if (lockCursor) {
             Cursor.lockState = CursorLockMode.Locked;
             Cursor.visible = false;
         }
 
         //cam collision
         dollyDir = transform.localPosition.normalized;
         distance = transform.localPosition.magnitude;
 
 
 
     }
 
     // Update is called once per frame
     void Update (){
         state = playerMov.swordState;
 
     }
 
 
 
     void LateUpdate () {
 
         yaw += Input.GetAxis ("Mouse X") * mouseSensitivity;
         pitch -= Input.GetAxis ("Mouse Y") * mouseSensitivity;
         pitch = Mathf.Clamp (pitch, pitchMinMax.x, pitchMinMax.y);
 
         Vector3 targetOffset = new Vector3(target.position.x, target.position.y, target.position.z);
 
         currentRotation = Vector3.SmoothDamp (currentRotation, new Vector3 (pitch, yaw), ref rotationSmoothVel, rotationSmoothTime);
         transform.eulerAngles = currentRotation;
 
         CamColisionFunc (ref targetOffset);
         Zoom ();
         transform.LookAt(target);
     }
 
     void Zoom(){
         if (state == true) {
             dstFromTarget = 9;
         }
         else if (state == false) {
             dstFromTarget = maxDistance;
         }
         camPosition = target.position - transform.forward * dstFromTarget;
         transform.position = Vector3.Lerp(transform.position, camPosition, Time.deltaTime * smooth);
     }
 
     void CamColisionFunc(ref Vector3 targetFollow){
         //#region prevent wall clipping
         Vector3 desiredCameraPos = Camera.main.transform.localPosition;
         RaycastHit wallHit;
 
         if (Physics.Linecast (targetFollow, desiredCameraPos, out wallHit,CamOclusion)){
             smooth = 10f;
             camPosition = new Vector3(wallHit.point.x + wallHit.normal.x * 0.5f, camPosition.y, wallHit.point.z + wallHit.normal.z * 0.5f);
             Debug.Log ("Hit Ray"+ wallHit.collider);
         } else {
             //Zoom ();
             //dstFromTarget = maxDistance;
             Debug.Log ("Not Hit");
         }
 
         //#endregion
     }
 }

please help me…

You have to give us details on how it “didnt work”. Maybe a little background on purpose of the script?