Реализация зума изображения как инстаграме на Unity 2d C#

На сцене есть канвас, а в нём картинка. Как можно реализовать её масштабирование и перемещение по ней двумя пальцами как в инстаграме на unity C# (2d приложение)?

if (Input.touchCount == 2)
        {
            // Store both touches.
            Touch touchZero = Input.GetTouch(0);
            Touch touchOne = Input.GetTouch(1);
    
            // Find the position in the previous frame of each touch.
            Vector2 touchZeroPrevPos = touchZero.position - touchZero.deltaPosition;
            Vector2 touchOnePrevPos = touchOne.position - touchOne.deltaPosition;
    
            // Find the magnitude of the vector (the distance) between the touches in each frame.
            float prevTouchDeltaMag = (touchZeroPrevPos - touchOnePrevPos).magnitude;
            float touchDeltaMag = (touchZero.position - touchOne.position).magnitude;
    
            // Find the difference in the distances between each frame.
            float deltaMagnitudeDiff = (prevTouchDeltaMag - touchDeltaMag) / 100;
    
            if (zoom.x <= 1 & deltaMagnitudeDiff > 0)
            {
                deltaMagnitudeDiff = 0;
            }
    
            if (zoom.x >= 3 & deltaMagnitudeDiff < 0)
            {
                deltaMagnitudeDiff = 0;
            }
    
            zoom = new Vector3(zoom.x -= deltaMagnitudeDiff, zoom.y -= deltaMagnitudeDiff, 1);
            im.transform.localScale = zoom;
            im.transform.localScale = zoom;
        }

Код выше не подходит для этого, это просто увеличение картинки без возможности перемещения по ней, а также он работает не совсем корректно.

Картинка имеет положение по умолчанию, когда её масштабируют, она масштабируется пока два пальца на экране, и имеет возможность перемещаться, когда 1 или 2 пальца (ну, в общем-то, как в инстаграме), а когда пальцы отпускаются, картинка возвращается в исходное положение.


Ответы (0 шт):