Unity自适应策略
实验方式:
在Game窗格中选取常见分辨率依次查看,还能选择最后一个+,自定义分辨率:
傻瓜式CanvasScaler + Rect Transform(纯GUI操作,无需写脚本):
调节最外层画布的Canvas Scaler,为Scale With Screen Size。
下面有拉伸/压缩/按长宽比例进行伸缩等模式,调节成一个对多数屏幕都较为友好的参数。
参考:https://docs.unity3d.com/Manual/script-CanvasScaler.html
要点:
1)当开发应用在移动端时,“CanvasScaler”的“UI Scale Mode”为“ScaleWith Screen Size”,以便自适应移动端屏幕
2)最好事先知道应用到移动端屏幕的分辨率,或屏幕比例,以对应合适设置“Canvas Scaler”的“Reference Resolution”
3)当应用是横屏游戏时,把“CanvasScaler”的“Match”改为“0”,以“Width”为基准缩放UI适应屏幕;当应用是竖屏游戏时,把“Canvas Scaler”的“Match”改为“1”,以“Height”为基准缩放UI适应屏幕
Rect Transform是对象的一个组件,意在以父级对象的锚点位置(父级对象也必须持有Rect Transform的组件)来决定子级对象的相对位置,从而配合CanvasScaler完成自适应。Rect Transform可以多层嵌套,从而完成更加精致的位置确定功能。
Rect Transform官方文档:
https://docs.unity3d.com/Manual/class-RectTransform.html
Rect Transform中文民间博客教程:
https://blog.csdn.net/serenahaven/article/details/78826851
Rect Transform英文官方视频教程(裂墙推荐观看):https://unity3d.com/cn/learn/tutorials/modules/beginner/ui/rect-transform?playlist=17111