Skip to content

Latest commit

 

History

History
25 lines (24 loc) · 1.67 KB

fixScreen.md

File metadata and controls

25 lines (24 loc) · 1.67 KB

屏幕适配

安全区域适配

小游戏的屏幕适配与unity游戏适配常见手机屏幕没有区别。常见的适配方式都可以在小游中使用。区别的是一些屏幕信息的获取。 如安全区域的获取需调用 WX.GetSystemInfoSync得到其中的安全区域。 如下是适配刘海屏(这里以竖屏游戏按高度适配为例)的示例:

        var info = WX.GetSystemInfoSync();
        float py = (float)info.safeArea.top / (float)info.windowHeight;
        // Rootrect初始时设置其Anchor,使其与父节点一样大,也就是屏幕的大小
        // 调整屏幕移到刘海屏下面, 
        Rootrect.anchorMin = new Vector2((float)info.safeArea.left / (float)info.windowWidth, -(float)info.safeArea.top / (float)info.windowHeight );
        // 重新计算缩放,让高度占满刘海屏以下的区域
        cs.referenceResolution = new Vector2(cs.referenceResolution.x, cs.referenceResolution.y * (1.0f+py));

安全区域systemInfo 中获取的安全区域的数值,需要乘以systemInfo中的pixelRatio才为Unity中的大小,而且手机屏幕左上角为(0,0)

高分辨屏下模糊问题

因为 Unity 2019.3之前的版本对高分辨屏适配不是很好。会出现画面模糊的情况,所以最好选择Unity 2019.3之后的版本来构建你的游戏。如果游戏不能升级版本,也可以引入SDK,在初始化SDK后,SDK会自动对页面做一个兼容适配,避免模糊的问题。

//初始化SDK
WX.InitSDK((int code)=> {
// 你的主逻辑
});