title: Unity Camera Follow 2D stutter
body: <p>Now, I've been having a lot of issues with this, and I've been using the base Unity code that they provide as part of their 2D assets pack, and can be seen as follows below:
      using UnityEngine;
  using System.Collections;</p>
  
  <pre><code>public class Camera2DFollow : MonoBehaviour {
  
  public Transform target;
  public float damping = 1;
  public float lookAheadFactor = 3;
  public float lookAheadReturnSpeed = 0.5f;
  public float lookAheadMoveThreshold = 0.1f;
  public float yPosRestriction = -1;
  
  float offsetZ;
  Vector3 lastTargetPosition;
  Vector3 currentVelocity;
  Vector3 lookAheadPos;
  
  float nextTimeToSearch = 0;
  
  // Use this for initialization
  void Start () {
      lastTargetPosition = target.position;
      offsetZ = (transform.position - target.position).z;
      transform.parent = null;
  }
  
  // Update is called once per frame
  void Update () {
  
      if (target == null) {
          FindPlayer ();
          return;
      }
  
      // only update lookahead pos if accelerating or changed direction
      float xMoveDelta = (target.position - lastTargetPosition).x;
  
      bool updateLookAheadTarget = Mathf.Abs(xMoveDelta) &gt; lookAheadMoveThreshold;
  
      if (updateLookAheadTarget) {
          lookAheadPos = lookAheadFactor * Vector3.right * Mathf.Sign(xMoveDelta);
      } else {
          lookAheadPos = Vector3.MoveTowards(lookAheadPos, Vector3.zero, Time.deltaTime * lookAheadReturnSpeed);  
      }
  
      Vector3 aheadTargetPos = target.position + lookAheadPos + Vector3.forward * offsetZ;
      Vector3 newPos = Vector3.SmoothDamp(transform.position, aheadTargetPos, ref currentVelocity, damping);
  
      newPos = new Vector3 (newPos.x, Mathf.Clamp (newPos.y, yPosRestriction, Mathf.Infinity), newPos.z);
  
      transform.position = newPos;
  
      lastTargetPosition = target.position;       
  }
  
  void FindPlayer () {
      if (nextTimeToSearch &lt;= Time.time) {
          GameObject searchResult = GameObject.FindGameObjectWithTag ("Player");
          if (searchResult != null)
              target = searchResult.transform;
          nextTimeToSearch = Time.time + 0.5f;
      }
  }
  }
  </code></pre>
  
  <p>One of the main reasons I've been having problems with this is because I am quite new to Unity and have really only touched upon UnityScript, but my main problem is that as the rocket in my game's speed increases, the camera begins stuttering, I get the feeling that it is something to do with the dampening?</p>