Scale With Screen Size原理

1. Expand

这里设定屏幕分辨率800*600,参考分辨率1920*1080,
Canvas的宽高根据缩放模式对应算法设置为1920*1440(这里1440对比参考分辨率就体现了Expand),
中间的image组件,锚点居中,大小为1920*1080。

计算方法
缩放系数 = Mathf.Min(800/1920,600/1080) = Mathf.Min(0.41667,0.5555) ≈ 0.41667 ,
Canvas尺寸 =(800,600) / 0.41667 ≈(1920,1440)。

在这里插入图片描述
在这里插入图片描述

2. Shrink

屏幕分辨率800*600,Canvas的宽高从1920*1080 设置为1440*1080(1440和原1920对比体现了Shrink)
中间的image组件,锚点居中,大小为1920*1080

计算方法:
缩放系数 = Mathf.Max(800/1920,600/1080) = Mathf.Max(0.41667,0.5555) ≈ 0.5555
画布尺寸 =(800,600) / 0.5555 ≈(1440,1080)
在这里插入图片描述
在这里插入图片描述

3. Match Width Or Heigh

计算方法:
float logWidth = Mathf.Log(屏幕宽 / 参考分辨率宽, 2);
logWidth = Log2(400/800) = -1
float logHeight = Mathf.Log(屏幕高 / 参考分辨率高, 2);
logHeight = Log2(1200/600) = 1

在对数空间中平均值:(-1+1)/2=0

float logWeightedAverage = Mathf.Lerp(logWidth, logHeight, m_MatchWidthOrHeight);
logWeightedAverage = Mathf.Lerp(-1,1, 0.5);
scaleFactor = Mathf.Pow(2, logWeightedAverage);
scaleFactor = Mathf.Pow(2, 0) = 1
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值