1设置
手游平台在项目设置中,场景适配模式选择”固定宽模式 fixedwidth“,设计宽度以全面屏比例为主,我这里设置的设计宽高为640 * 1386
2代码和场景
laya的UI面板有三种类型,分别是Scene、View和Dialog
1)Scene和View
其中Scene和View的适配是一致的
(1)在场景中添加box类型的UI,并做如下设置。
重点关注要吧该场景下所有需要做适配的UI(通常背景不需要)放到该box下,box的宽高要与设计宽高一致,并且让这个box始终居中
(2)添加代码
只需要在对应的runtime脚本文件的onEnable函数中添加如下代码,重点是要让该场景的宽高与舞台宽高一致,并且等比例缩放UI
private init(): void {
let scale = Laya.stage.height / this.height;
this.height = Laya.stage.height;
this.box.scale(scale, scale);
}
2)Dialog
一般Dialog由于UI较小不需要做适配,如果是全面屏大小的Dialog可以参照上面的配置,或着调整各个UI的相对位置,在Dialog的runtime脚本设置宽高为舞台高度即可。
3总结
手游的适配是一个很灵活的事情,需要按照实际情况做对应处理,例如某些大地图游戏,需要移动屏幕活着地图,这种对于地图来说就无需缩放,但遍布在屏幕上的控制类型的UI可能就需要适配。