title: Everything in the scene except the player looks blurry when the camera is moving | Unity2D
body: <p>I started off my game using a simple camera follow script which only followed my player on the x axis with an offset and and some restrictions</p>
  
  <p>I recorded a video on my android to show what I mean. In the recording the issue is a bit exaggerated ( due to recording) and only viewable once the spikes enter the view. When not recording, the player animation is perfectly smooth. <a href="https://vimeo.com/249590519" rel="nofollow noreferrer">Here's the video</a></p>
  
  <pre><code>using UnityEngine;
  
   public class MainCamera : MonoBehaviour {
  
       public Transform target;
       public float xOffset, xPosRestrictionMin, xPosRestrictionMax;
  
       private float yPos, zPos;
  
       void Start ()
       {
           yPos = transform.position.y;
           zPos = transform.position.z;
       }
  
       void LateUpdate ()
       {
           transform.position = new Vector3(Mathf.Clamp(target.position.x + xOffset, xPosRestrictionMin, xPosRestrictionMax), yPos, zPos);
       }
   }
  </code></pre>
  
  <p>However when first running the game everything looked "jittery". Despite all my player physics being inside fixed update, input inside update and camera updates being inside lateupdate. I tried setting interpolate to extrapolate on the players rigidbody2d. Now the player would look and animate smoothly but everything else look blurry when the camera is moving. I thought that maybe my script or settings were at fault so I tried to turn off vsync, set target frame rate to 60 and when nothing worked I downloaded Cinemachine. Even with cinemachine instead of my own script it still looks blurry and I can't figure out why. Here's a simplified version of my controls.</p>
  
  <pre><code> private void Update()
   {
       //Handle touch input
       if (Input.touchCount &gt; 0)
       {
  
           foreach (Touch touch in Input.touches)
           {
               switch (touch.phase)
               {
                   // Touchdown
                   case TouchPhase.Began:
                       if (onGround || !doubleJumped)
                       {
                           jump = true;
                           touchReleased = false;
  
                           if (onGround)
                               anim.SetBool("jump", true);
                       }
                       break;
  
                   //Touch up
                   case TouchPhase.Ended:
                       allowGlide = false;
                       anim.SetBool("glide", false);
                       if (rb.velocity.y &gt; 0)
                           touchReleased = true;
                       break;
               }
  
           }
       }
   }
  
  
   void FixedUpdate()
   {
       rb.velocity = new Vector2(newMoveSpeed, rb.velocity.y);
  
       onGround = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);
       if (onGround &amp;&amp; !jump)
       {
           gliding = false;
           allowGlide = false;
           anim.SetBool("glide", false);
           anim.SetBool("jump", false);
           doubleJumped = false;
       }
  
       //Slowly Accelerate if not at top speed and touching the ground
       if (newMoveSpeed &lt; moveSpeed &amp;&amp; onGround)
           newMoveSpeed += 0.0165f;
       anim.speed = Mathf.Clamp(newMoveSpeed, 13, 18);
  
       //Jumping 
       if (jump &amp;&amp; onGround)
       {
           jump = false;
           rb.velocity = new Vector2(rb.velocity.x, jumpHeight);
       }
       else if (jump &amp;&amp; !doubleJumped &amp;&amp; !onGround)
       {
           jump = false;
           doubleJumped = true;
           allowGlide = true;
           rb.velocity = new Vector2(rb.velocity.x, jumpHeight);
       }
  
       //Add multiplier if falling down
       if (rb.velocity.y &lt; 0 &amp;&amp; allowGlide)
       {
           anim.SetBool("glide", true);
           if (!gliding)
           {
               rb.velocity -= Vector2.up * Physics2D.gravity.y;
               gliding = true;
           }
           else
           {
               rb.velocity += Vector2.up * Physics2D.gravity.y * (glideMultiplier - 1) * Time.deltaTime;
           }
       }
       else if (rb.velocity.y &lt; 0)
       {
           rb.velocity += Vector2.up * Physics2D.gravity.y * (fallMultiplier - 1) * Time.deltaTime;
       }
  
       //Increase fall multiplier if touch is released mid jump
       else if (rb.velocity.y &gt; 0 &amp;&amp; touchReleased)
       {
           rb.velocity += Vector2.up * Physics2D.gravity.y * (lowJumpMultiplier - 1) * Time.deltaTime;
       }
       else if (rb.velocity.y == 0)
       {
           return;
       }
   }
  </code></pre>
  
  <p>Thanks, any help or feedback is appreciated!</p>