关于Unity屏幕适配的一些事

今天开始做Unity屏幕的适配,项目开始进入了中后期,更加需要将一些细节的地方打磨的更好。

如何使屏幕适应不同分辨率的安卓手机,这是一个必须解决的问题,也是一个考验程序和设计的地方。


屏幕适配我一般采用固定一个方向上(长,宽)的相对大小不变,然后调节另外一个方向。


因为游戏界面多用tk2dTool 这个插件来制作,所以技术主要围绕这个插件来。主要Camera使用tk2dCamera 这个Camera本身自带了屏幕适应的初级解决方案,Tk2kCameraAnchor 这个脚本挂接到物体上之后,更具所选择的摄像机,物体可以相对摄像机频幕固定在,屏幕的 


顶边左,顶边中,顶边右

中层左,中层中,中层右

底边左,底边中,底边右

这9个方向上,再设置针对这几个位置的偏移,基本上对于简单的UI(按钮,信息栏)来说可以足够适应屏幕。说以我称它为初级解决方案。

但是对于一些特殊的UI来说,这个功能就不够用了,例如一个几乎占据半个屏幕的圆角矩形,这个UI的位置不管怎么移动对于小分辨率的手机来说都不符合要求,这个时候就必须得对UI的大小进行缩放。


:对于需要缩放来适应屏幕的UI,就需要特殊处理,我的方法是自己写类似于Tk2kCameraAnchor 的脚本,获取到屏幕中需要显示的区域,然后缩放到合适大小。


获得屏幕区域的矩形:

Rect rect = new Rect();
rect = _currentTk2dCamera.ScreenExtents;

获得一个图片的当前大小

frameIcon.renderer.bounds.size


这里我使用的是tk2dSlicedSprite的Dimension 来控制图片的大小,因为不知道Dimension 和世界中距离的关系所以我需要先计算出原图的Dimensions和可用区域的比值,之后再用比值计算出可用区域的dimensions的值,最后再设定Dimensions的值就可以达到缩放到合适大小的要求。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值