[2D] Sprite flickers/is choppy when moving

The movement of my player sprite is very choppy, almost as if it “flickers.” The sprite is 16x24 and I have tried just about everything I can to fix this issue, I have searched everywhere.

  • The camera is orthographic, size 100,
  • The player sprite is 16x24, PPU 1, point filter, 16-bits format
  • The player gameObject is scale 1,1,1
  • Rigidbody 2d, interpolate none, is NOT kinematic
  • Quality settings: anisotropic textures disabled, anti aliasing disabled, v sync count every v blank

Here’s the movement code that is applied to the player (commented out parts of other solutions I tried for the movement)

		if(Input.GetKey(KeyCode.A))
		{
			//Vector2 newPos = new Vector2(this.transform.position.x - 4f, this.transform.position.y);
			//this.gameObject.transform.position = Vector3.Lerp(transform.position, newPos, playerSpeed * Time.smoothDeltaTime);
			//this.gameObject.transform.position = Vector2.MoveTowards(this.gameObject.transform.position, newPos, playerSpeed * Time.deltaTime);

			this.gameObject.GetComponent<Rigidbody2D>().AddForce(-Vector2.right * playerSpeed * Time.smoothDeltaTime);
			this.gameObject.transform.eulerAngles = new Vector2(0, 180);
			
			isFacingRight = false;
			isFacingLeft = true;
			
			isMoving = true;
		}
		
		if(Input.GetKey(KeyCode.D))
		{
			//Vector2 newPos = new Vector2(this.transform.position.x + 4f, this.transform.position.y);
			//this.gameObject.transform.position = Vector3.Lerp(transform.position, newPos, playerSpeed * Time.smoothDeltaTime);
			//this.gameObject.transform.position = Vector2.MoveTowards(this.gameObject.transform.position, newPos, playerSpeed * Time.deltaTime);

			this.gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.right * playerSpeed * Time.smoothDeltaTime);
			this.gameObject.transform.eulerAngles = new Vector2(0, 0);
			
			isFacingRight = true;
			isFacingLeft = false;
			
			isMoving = true;
		}

If anyone has any suggestions AT ALL, please share. I have spent days trying to resolve this issue.

Thank you.

Hi YeeLuke,

Just checking but please confirm that the code above is in FixedUpdate() and that your code updating the camera position is in LateUpdate().