Object position flickering

Hey there, I’m new to Unity (and coding in general) and need some help with a script I’m working on.

I’m trying to move the camera forward and backward on the Z axis by pressing E and Q, but only within a certain range. I also have it set up so that if you press R it resets the camera to its original position.

Whenever I run my current script, the camera moves/flickers between two points really quickly. I think it has something to do with using transform.position in two places, but I can’t understand why (or how to fix it). Any help would be appreciated!

public class CameraMovement : MonoBehaviour {

    Vector3 originalPos;
    private float minZ = -1f, maxZ = -2f;

	// Use this for initialization
	void Start () {
        originalPos = new Vector3(0f, 0f ,-1.5f);
	// Update is called once per frame
	void Update () {

        Vector3 currentPosition = transform.position;
        currentPosition.z = Mathf.Clamp(currentPosition.z, minZ, maxZ);
        transform.position = currentPosition;
        if (Input.GetKey("e"))
            transform.position += new Vector3(0F, 0F, (0.1f * (Time.deltaTime * 6f)));
        if (Input.GetKey("q"))
            transform.position += new Vector3(0f, 0f, (-0.1f * (Time.deltaTime * 6f)));
        if (Input.GetKey("r"))
            transform.position = originalPos;


Hey! I think the problem is in the math. -2 is less than -1, but you’ve set the minimum to -1 and maximum to -2. Try switching the two around and see if the problem still occurs.