From 6626c8d613b0ff1eb792613ede12f2f2e08479a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E8=99=9E=E6=B8=A0=E6=88=90=E2=80=9D?= <“yuqucheng2006@qq.com”> Date: Thu, 23 Jul 2026 16:26:37 +0800 Subject: [PATCH] =?UTF-8?q?perf(scanQRcode):=20=E4=BC=98=E5=8C=96=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81=E6=89=AB=E6=8F=8F=E7=9A=84=E5=83=8F=E7=B4=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 减少了扫描间隔从0.2秒到0.1秒,提升扫描灵敏度 2. 直接获取纹理原始RGB字节数据,移除手动转换像素的循环,减少性能开销 --- Assets/Scripts/UI/Pages/ConnectDevice/ScanQRcode.cs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Assets/Scripts/UI/Pages/ConnectDevice/ScanQRcode.cs b/Assets/Scripts/UI/Pages/ConnectDevice/ScanQRcode.cs index 3560576..a27f024 100644 --- a/Assets/Scripts/UI/Pages/ConnectDevice/ScanQRcode.cs +++ b/Assets/Scripts/UI/Pages/ConnectDevice/ScanQRcode.cs @@ -22,7 +22,7 @@ namespace Kill.UI.Pages [Header("UI组件")] public RawImage cameraPreview; // 摄像头预览 [Header("扫描设置")] - float scanInterval = 0.2f; // 扫描间隔(秒) + float scanInterval = 0.1f; // 扫描间隔(秒) public ScanType scanType = ScanType.ConnectDevice; // 扫描类型 [Header("小二维码优化")] @@ -382,17 +382,10 @@ namespace Kill.UI.Pages // 异步解析二维码以避免卡顿 if (useAsyncScan) { - // 在主线程提取像素数据(Unity API 必须在主线程调用) - Color32[] pixels = previewTexture.GetPixels32(); + // 直接获取 RGB24 原始字节,无需手动转换 + byte[] rgbBytes = previewTexture.GetRawTextureData(); int texWidth = previewTexture.width; int texHeight = previewTexture.height; - byte[] rgbBytes = new byte[pixels.Length * 3]; - for (int i = 0; i < pixels.Length; i++) - { - rgbBytes[i * 3] = pixels[i].r; - rgbBytes[i * 3 + 1] = pixels[i].g; - rgbBytes[i * 3 + 2] = pixels[i].b; - } string result = null; bool scanComplete = false;