у меня проблема изображение перевернутое нужно его повернуть на 90 градусов 
[SerializeField] private RawImage rawImageBackground;
    [SerializeField] private AspectRatioFitter aspectRatioFitter;

    private WebCamTexture camTexture;
    private CancellationTokenSource cts;
    private Result result;

    private BarcodeReader barcodeReader = new BarcodeReader
    {
        AutoRotate = false,
        Options = new ZXing.Common.DecodingOptions
        {
            TryHarder = false
        }
    };

    void Start()
    {
        cts = new CancellationTokenSource();

        SetupWebcamTexture();
        PlayWebcamTexture();

        // Запуск многопоточного сканирования QR-кода
        StartScanningAsync(cts.Token);
    }

    void Update()
    {
        if (camTexture.width < 100)
        {
            return;
        }

        // Обновление изображения и соотношения сторон
        rawImageBackground.texture = camTexture;
        rawImageBackground.material.mainTexture = camTexture;
        aspectRatioFitter.aspectRatio = (float)camTexture.width / camTexture.height;

        // Здесь можно также обновлять UI или выполнять другие операции на каждом кадре
    }

    private void SetupWebcamTexture()
    {
        WebCamDevice[] devices = WebCamTexture.devices;
        string desiredName = devices.Length > 0 ? devices[0].name : null;

        camTexture = new WebCamTexture(desiredName);
        camTexture.requestedHeight = Screen.height;
        camTexture.requestedWidth = Screen.width;
    }

    private void PlayWebcamTexture()
    {
        if (camTexture != null)
        {
            camTexture.Play();
        }
    }

    private async void StartScanningAsync(CancellationToken ct)
    {
        await Task.Run(() =>
        {
            while (!ct.IsCancellationRequested)
            {
                try
                {
                    if (camTexture.didUpdateThisFrame && camTexture.isPlaying)
                    {
                        var result = barcodeReader.Decode(camTexture.GetPixels32(), camTexture.width, camTexture.height);
                        if (result != null)
                        {
                            ct.ThrowIfCancellationRequested(); // Выход из цикла, если операция была отменена
                            UpdateTextOnMainThread(result.Text);
                        }
                    }
                }
                catch
                {
                    // Обработка исключений (например, операция отменена)
                    return;
                }
            }
        }, ct);
    }

    void UpdateTextOnMainThread(string text)
    {
        try
        {
            if (result != null)
            {
                // QR-код успешно считан
                Debug.Log("Decoded QR: " + result.Text);

                // Останавливаем сканирование и камеру
                camTexture.Stop();

                var resultURL = result.Text.Substring(0, result.Text.Length - 1);

                //OnResult?.Invoke(resultURL);
                // Переходим по ссылке, если это нужно
                result = null;
                Application.OpenURL(resultURL);
            }
        }
        catch (System.Exception ex)
        {
            Debug.LogWarning(ex.Message);
        }
    }

    private void OnDestroy() // Остановка и очистка при уничтожении
    {
        cts.Cancel(); // Отмена задачи сканирования

        if (camTexture != null)
        {
            camTexture.Stop();
            camTexture = null;
        }
    }
}