unity 实时画面投屏到手机_unity实战 手机屏幕适配

使用背景

为了在UI中使用特效层,项目Canvas采用了Screen Space-Camera类型

UI的Scale Mode 选择的是Scale With Screen Size 的Expand,画布大小填的是1334, 750

在该选择下,会自动根据分辨率适配宽度/高度。

自动适配的规则是:

屏幕实际宽高比值的 

屏幕实际宽高比值的  > 画布大小的宽高比值  采用以高度缩放

screen.width/screen.height < 1334/750

实际问题

1.血条或者头顶的ui,跳字的位置会有偏差,根据3D坐标转2D坐标的接口得到的坐标(Camera.main.WorldToScreenPoint)已经不适用了,需要做缩放。

缩放的解决方式:

以宽缩放,需要以宽的缩放比例去缩放高

ratio = 1334/screen.width

x = screen2d.x * ratio - screen.width/2 // 以宽度的比例求出x值(减去屏幕大小的一半是因为锚点在中心)

y = (screen2d.y - screen.height/2) * ratio // 直接以宽的比例求出y值

以高缩放,需要以高的缩放比例去缩放高

ratio = 750/screen.height

x = (screen2d.x - screen.width/2) * ratio // 直接以高的比例求出x值

y = screen2d.y * ratio - screen.height/2 // 以高度的比例求出y值(减去屏幕大小的一半是因为锚点在中心)

ui使用该坐标即可完美的适配

2.当遇到ipad这种宽高度比低的会以宽度适配,导致上下留白。

解决方式让ui做高些,现在还没做一些其他尝试。先临时处理

3.刘海屏

项目解决思路

打表的形式,ios有自己的接口screen.safearea,Android9之后有api接口,其他安卓厂商有自己的设定,只要把市面的机型刘海高度记录下来,适配的时候直接使用即可。

ios安全范围参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值