From 04cdf14bb5924dd51c660890e758713a54cbe54c Mon Sep 17 00:00:00 2001 From: LiRuoChen <571244399@qq.com> Date: Fri, 8 Dec 2023 17:05:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E8=AE=BE=E5=AE=9Acanvas=E8=B7=9F?= =?UTF-8?q?=E9=9A=8F=E5=B1=8F=E5=B9=95=E7=BC=A9=E6=94=BE=E8=80=8C=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E7=9A=84=E7=BB=84=E4=BB=B6=EF=BC=8C=E7=94=A8=E4=BA=8E?= =?UTF-8?q?=E7=AD=89=E6=AF=94=E8=B0=83=E8=8A=82=E4=B8=8E=E6=A0=87=E5=87=86?= =?UTF-8?q?UI=E7=9A=84=E6=B8=B2=E6=9F=93=E7=BC=A9=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Type/Screen.meta | 8 +++ .../Type/Screen/CanvasZoomAdjustmentBase.cs | 67 +++++++++++++++++++ .../Screen/CanvasZoomAdjustmentBase.cs.meta | 11 +++ Runtime/Type/Screen/CanvasZoomStart.cs | 15 +++++ Runtime/Type/Screen/CanvasZoomStart.cs.meta | 11 +++ 5 files changed, 112 insertions(+) create mode 100644 Runtime/Type/Screen.meta create mode 100644 Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs create mode 100644 Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs.meta create mode 100644 Runtime/Type/Screen/CanvasZoomStart.cs create mode 100644 Runtime/Type/Screen/CanvasZoomStart.cs.meta diff --git a/Runtime/Type/Screen.meta b/Runtime/Type/Screen.meta new file mode 100644 index 0000000..68d84b4 --- /dev/null +++ b/Runtime/Type/Screen.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cd531b4b89e02624cb1c5e28e82c927d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs b/Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs new file mode 100644 index 0000000..f370590 --- /dev/null +++ b/Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XericLibrary.Runtime.Type +{ + /// + /// 调整缩放以适配分辨率 + /// + public class CanvasZoomAdjustmentBase : WeaklyMonoBase + { + #region 字段属性 + + protected CanvasScaler _canvasScaler; + + /// + /// 当前目标屏幕的分辨率 + /// + public static Vector2Int CurrentScreenResolution + => new Vector2Int(Screen.currentResolution.width, Screen.currentResolution.height); + + /// + /// 常规标准屏幕 16:9 + /// + public static Vector2Int FullHDScreenResolution + => new Vector2Int(1920, 1080); + + /// + /// 常规标准屏幕 16:9 + /// + public static Vector2Int QHDScreenResolution + => new Vector2Int(2560, 1440); + + #endregion + + #region 生命周期 + + private void Awake() + { + _canvasScaler = transform.GetComponent(); + } + + #endregion + + #region MyRegion + + /// + /// 获取与给定的标准宽度的缩放比例 + /// + /// + /// + public static float ScreenScaleFactorWithWidth(int standardWidth = 1920) + => (float)Screen.currentResolution.width / standardWidth; + + /// + /// 获取与给定的标准高度的缩放比例 + /// + /// + /// + public static float ScreenScaleFactorWithHeight(int standardHeight = 1080) + => (float)Screen.currentResolution.height / standardHeight; + + #endregion + } +} diff --git a/Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs.meta b/Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs.meta new file mode 100644 index 0000000..596bc5e --- /dev/null +++ b/Runtime/Type/Screen/CanvasZoomAdjustmentBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9e4512923ba0d64cb475d93f7c9f055 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Type/Screen/CanvasZoomStart.cs b/Runtime/Type/Screen/CanvasZoomStart.cs new file mode 100644 index 0000000..b7e651e --- /dev/null +++ b/Runtime/Type/Screen/CanvasZoomStart.cs @@ -0,0 +1,15 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace XericLibrary.Runtime.Type +{ + public class CanvasZoomStart : CanvasZoomAdjustmentBase + { + // Start is called before the first frame update + void Start() + { + _canvasScaler.scaleFactor = ScreenScaleFactorWithWidth(); + } + } +} diff --git a/Runtime/Type/Screen/CanvasZoomStart.cs.meta b/Runtime/Type/Screen/CanvasZoomStart.cs.meta new file mode 100644 index 0000000..4496b46 --- /dev/null +++ b/Runtime/Type/Screen/CanvasZoomStart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5e5e480bc8648214891d46b029219a27 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: