This question was 
             closed Oct 23, 2017 at 06:36 AM by 
             AmirSavand for the following reason: 
             
 
            Problem is not reproducible or outdated
 
               Question by 
               AmirSavand · Jul 13, 2016 at 12:11 PM · 
                camerafollow playerlaggy  
              
 
              Camera follow target glitches
I use the follow target script and when my character turns left or right objects around the character glitch, like a lag or something...
What should I do to make it smooth and not sharp ?!?
Thanks
 using UnityEngine;
 using System.Collections;
 
 public class SmoothFollow : MonoBehaviour {
 
 
     [SerializeField]
     private Transform target;
 
     [SerializeField]
     private float distance = 10.0f;
 
     [SerializeField]
     private float height = 6.0f;
 
     [SerializeField]
     private float rotationDamping = 6.0f;
 
     [SerializeField]
     private float heightDamping;
 
     // Update is called once per frame
     void LateUpdate() {
         
         // Early out if we don't have a target
         if (!target) return;
 
         // Calculate the current rotation angles
         var wantedRotationAngle = target.eulerAngles.y;
         var wantedHeight = target.position.y + height;
 
         var currentRotationAngle = transform.eulerAngles.y;
         var currentHeight = transform.position.y;
 
         // Damp the rotation around the y-axis
         currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);
 
         // Damp the height
         currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime);
 
         // Convert the angle into a rotation
         var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);
 
         // Set the position of the camera on the x-z plane to:
         // distance meters behind the target
         transform.position = target.position;
         transform.position -= currentRotation * Vector3.forward * distance;
 
         // Set the height of the camera
         transform.position = new Vector3(transform.position.x ,currentHeight , transform.position.z);
 
         // Always look at the target
         transform.LookAt(target);
     }
 }
               Comment
              
 
               
              Answer by sora_jp · Mar 03, 2017 at 01:02 PM
Instead of
      transform.position = target.position;
      transform.position -= currentRotation * Vector3.forward * distance;
Use
     //Declare these variable OUTSIDE all functions
     Vector3 _vel = Vector3.zero;
     public float speed = 1.0f;
     public float smoothTime = 0.2f;
     ...
     //In update
     transform.position = Vector3.SmoothDamp(transform.position, 
     currentRotation * Vector3.back * distance + target.position, 
     ref _vel, smoothTime,
     speed * Time.deltaTime);
I hope this works!
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                