|
1 | 1 | # 屏幕适配
|
2 | 2 |
|
3 | 3 | ## 安全区域适配
|
4 |
| -小游戏的屏幕适配与unity游戏适配常见手机屏幕没有区别。常见的适配方式都可以在小游中使用。区别的是一些屏幕信息的获取。 |
5 |
| -如安全区域的获取需调用 WX.GetSystemInfoSync得到其中的安全区域。 |
| 4 | + |
| 5 | +小游戏的屏幕适配与 unity 游戏适配常见手机屏幕没有区别。常见的适配方式都可以在小游中使用。区别的是一些屏幕信息的获取。 |
| 6 | +如安全区域的获取需调用 WX.GetWindowInfo 得到其中的安全区域。 |
6 | 7 | 如下是适配刘海屏(这里以竖屏游戏按高度适配为例)的示例:
|
| 8 | + |
| 9 | +```csharp |
| 10 | +var info = WX.GetWindowInfo(); |
| 11 | +float py = (float)info.safeArea.top / (float)info.windowHeight; |
| 12 | +// Rootrect初始时设置其Anchor,使其与父节点一样大,也就是屏幕的大小 |
| 13 | +// 调整屏幕移到刘海屏下面, |
| 14 | +Rootrect.anchorMin = new Vector2((float)info.safeArea.left / (float)info.windowWidth, -(float)info.safeArea.top / (float)info.windowHeight ); |
| 15 | +// 重新计算缩放,让高度占满刘海屏以下的区域 |
| 16 | +cs.referenceResolution = new Vector2(cs.referenceResolution.x, cs.referenceResolution.y * (1.0f+py)); |
7 | 17 | ```
|
8 |
| - var info = WX.GetSystemInfoSync(); |
9 |
| - float py = (float)info.safeArea.top / (float)info.windowHeight; |
10 |
| - // Rootrect初始时设置其Anchor,使其与父节点一样大,也就是屏幕的大小 |
11 |
| - // 调整屏幕移到刘海屏下面, |
12 |
| - Rootrect.anchorMin = new Vector2((float)info.safeArea.left / (float)info.windowWidth, -(float)info.safeArea.top / (float)info.windowHeight ); |
13 |
| - // 重新计算缩放,让高度占满刘海屏以下的区域 |
14 |
| - cs.referenceResolution = new Vector2(cs.referenceResolution.x, cs.referenceResolution.y * (1.0f+py)); |
15 |
| -``` |
| 18 | + |
16 | 19 | 
|
17 |
| -从[systemInfo](https://developers.weixin.qq.com/minigame/dev/api/base/system/wx.getSystemInfo.html) 中获取的安全区域的数值,需要乘以systemInfo中的pixelRatio才为Unity中的大小,而且手机屏幕左上角为(0,0) |
| 20 | +从 [wx.getWindowInfo](https://developers.weixin.qq.com/minigame/dev/api/base/system/wx.getWindowInfo.html) 中获取的安全区域的数值,需要乘以 pixelRatio 才为 Unity 中的大小,而且手机屏幕左上角为(0,0) |
| 21 | + |
18 | 22 | ## 高分辨屏下模糊问题
|
19 |
| -因为 Unity 2019.3之前的版本对高分辨屏适配不是很好。会出现画面模糊的情况,所以最好选择`Unity 2019.3`之后的版本来构建你的游戏。如果游戏不能升级版本,也可以引入[SDK](./WX_SDK.md),在初始化SDK后,SDK会自动对页面做一个兼容适配,避免模糊的问题。 |
20 |
| -``` |
| 23 | + |
| 24 | +因为 Unity 2019.3 之前的版本对高分辨屏适配不是很好。会出现画面模糊的情况,所以最好选择`Unity 2019.3`之后的版本来构建你的游戏。如果游戏不能升级版本,也可以引入[SDK](./WX_SDK.md),在初始化 SDK 后,SDK 会自动对页面做一个兼容适配,避免模糊的问题。 |
| 25 | + |
| 26 | +```csharp |
21 | 27 | //初始化SDK
|
22 | 28 | WX.InitSDK((int code)=> {
|
23 | 29 | // 你的主逻辑
|
24 |
| -}); |
25 |
| -``` |
| 30 | +}); |
| 31 | +``` |
| 32 | + |
0 commit comments