Coroutine while-loop causes jittering (Trying Zoom via Touch)

Hello,

I’m trying to make zooming (pinching) possible via multiple-touch-Input (Input System).
Now, this code works fine for my iPad. It does cause jittering when I try on my phone.

It just starts jittering when the difference between newDistance and originDistance reaches a certain point.
But if I zoom in on little steps (repetitive), it also does NOT jitter.

If I comment out line 14-19, newDistance gives a concrete value, while it jumps around, when line 14-19 is active.

    IEnumerator ZoomMobile(){

        float originDistance =  Vector2.Distance((Vector2)Camera.main.ScreenToWorldPoint(playerInputAction.Player.PrimaryTouchPos.ReadValue<Vector2>()),
                                (Vector2)Camera.main.ScreenToWorldPoint(playerInputAction.Player.SecondaryTouchPos.ReadValue<Vector2>()));

        while(true){
        
            Vector2 primaryTouchPosition = (Vector2)Camera.main.ScreenToWorldPoint(playerInputAction.Player.PrimaryTouchPos.ReadValue<Vector2>());
            Vector2 secondaryTouchPosition = (Vector2)Camera.main.ScreenToWorldPoint(playerInputAction.Player.SecondaryTouchPos.ReadValue<Vector2>());

            float newDistance = Vector2.Distance(primaryTouchPosition, secondaryTouchPosition);
            Debug.Log(newDistance);

            if(newDistance>originDistance){
                Camera.main.orthographicSize -= (newDistance-originDistance);
            }
            else if (newDistance<originDistance){
                Camera.main.orthographicSize += (originDistance-newDistance);
            }
        
            yield return null;
        }
    }

I found the Problem:

When you change the Cameras OrthographicSize it will affect the ScreenToWorldPoint.
I had to use the Vectors without ScreenToWorldPoint and multiply (newDistance-originDistance) with a float “zoomSpeed”