From fe6152d144f918963d8e8e316761a79c91b08b98 Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Fri, 9 May 2025 14:58:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D4K=E5=88=86=E8=BE=A8=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Draw/Scripts/ScreenShotPainter.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Assets/Draw/Scripts/ScreenShotPainter.cs b/Assets/Draw/Scripts/ScreenShotPainter.cs index 971cfe88..9cea52ea 100644 --- a/Assets/Draw/Scripts/ScreenShotPainter.cs +++ b/Assets/Draw/Scripts/ScreenShotPainter.cs @@ -700,7 +700,12 @@ public class ScreenShotPainter : MonoBehaviour RectFactory(); break; case Status.Circle: - var dis = Vector2.Distance(_lastPoint, Input.mousePosition) * 2; + Vector2 last; + Vector2 mouse; + RectTransformUtility.ScreenPointToLocalPointInRectangle(circleImg.rectTransform.parent as RectTransform, _lastPoint, null, out last); + RectTransformUtility.ScreenPointToLocalPointInRectangle(circleImg.rectTransform.parent as RectTransform, Input.mousePosition, null, out mouse); + + var dis = Vector2.Distance(last, mouse) * 2; circleImg.rectTransform.sizeDelta = new Vector2(dis, dis); break; case Status.Arrow: @@ -821,7 +826,7 @@ public class ScreenShotPainter : MonoBehaviour { if (lineStart != default) { - var points = GenerateArrowPoints(lineStart, Input.mousePosition,0.1f); + var points = GenerateArrowPoints(lineStart, Input.mousePosition, 0.1f); _lastPoint = lineStart; Paint(_eraserFlag, lineStart); LerpPaint(Input.mousePosition, _eraserFlag); @@ -1038,10 +1043,6 @@ public class ScreenShotPainter : MonoBehaviour yield return new WaitForEndOfFrame(); float width = _rightUpConnerPoint.x - _leftDownConnerPoint.x; float height = _rightUpConnerPoint.y - _leftDownConnerPoint.y; - Debug.Log(_leftDownConnerPoint.x.ToString("0.00")); - Debug.Log(_leftDownConnerPoint.y.ToString("0.00")); - Debug.Log("width:" + width); - Debug.Log("width:" + height); Rect rect = new Rect(_leftDownConnerPoint.x, _leftDownConnerPoint.y, width, height); //坑爹啊 如果是开携程在WaitForEndOfFrame时候截图,那么他的坐标系换了。。rect起始点要设置在左下角