You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中Canvas Scaler下跨画布保持Image真实高度的公式求解

Unity UI跨Canvas真实高度匹配求解公式

已知参数定义

统一变量命名以便推导:

  • 实际屏幕分辨率:实际宽度W,实际高度H(竖屏场景下,如1920×1080指H=1920,W=1080)
  • Canvas 1 核心参数:
    • 参考分辨率:宽CW1=2960,高CH1=1440
    • 缩放规则:Scale With Screen Size,Match=1(以高度为匹配基准)
    • 目标Image高度:IH1=100
  • Canvas 2 核心参数:
    • 参考分辨率:宽CW2=1440,高CH2=2560
    • 缩放规则:Scale With Screen Size,Expand模式
    • 待求解的Image高度:x

通用推导公式

核心目标:让Canvas 2中Image的真实显示高度与Canvas 1中的Image完全一致,即:
IH1 × Canvas1缩放因子 = x × Canvas2缩放因子

步骤1:计算Canvas1的缩放因子S1

Canvas1采用Match Height(Match=1),缩放因子由实际高度与参考高度的比值决定:

S1 = H / CH1

步骤2:计算Canvas2的缩放因子S2

Canvas2采用Expand模式,缩放因子取「实际宽/参考宽」和「实际高/参考高」中的较小值(保证UI内容完整显示):

S2 = min( W/CW2 , H/CH2 )

步骤3:求解x

将S1、S2代入真实高度等式,整理得最终公式:

x = IH1 × ( H / CH1 ) / min( W/CW2 , H/CH2 )

示例验证(以1920×1080分辨率为例)

代入参数:H=1920,W=1080,CH1=1440,CW2=1440,CH2=2560,IH1=100

  1. 计算S1:1920/1440 = 1.333333
  2. 计算S2:min(1080/1440, 1920/2560) = min(0.75, 0.75) = 0.75
  3. 求解x:100 × (1.333333 / 0.75) = 177.7778
    与示例结果完全匹配。

内容的提问来源于stack exchange,提问作者Jinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:55:11