unity 开发微信小游戏,有一些常用功能,例如微信登录,微信支付,打开游戏圈,获取用户头像、名字等功能,查看对应的开发文档即可,但是在开发过程中还遇到一些坑,特此记录一下打开游戏圈和获取用户权限踩坑
打开游戏圈
创建一个打开游戏圈的按钮,点击按钮跳转微信游戏圈
|
|
获取用户信息
获取用户信息之前,需要判断用户是否授权
|
|
如果已经授权,便可直接读取用户信息
|
|
如果未授权,需要调用微信插件提供的CreateUserInfoButton
方法创建一个透明按钮,用户点击按钮,会弹出授权弹框,所以最好将按钮覆盖在功能按钮上,例如打开排行榜需要读取用户头像,用户还未授权,就应该将透明按钮覆盖在排行榜按钮上
|
|
小技巧
因为授权按钮是透明的,很不好调试,在微信开发者工具中,鼠标移动到授权按钮的时候,鼠标会从圈变成箭头
坑点
创建游戏圈按钮和授权按钮,都需要指定按钮的位置
- left 相对屏幕左上角的 x 坐标
- top 相对屏幕左上角的 y 坐标
- width 按钮宽度
- height 按钮高度
区别:
CreateGameClubButton 创建游戏圈按钮,是相对于逻辑分辨率,需要通过
GetSystemInfoOption
获取1 2 3 4 5 6 7 8 9
WX.GetSystemInfo(new GetSystemInfoOption() { success = (info) => { var dpr = info.pixelRatio; var width = info.screenWidth; var height = info.screenHeight; } });
CreateUserInfoButton 创建授权按钮,是相对于物理分辨率,在 unity 中通过
Screen.width
和Screen.height
获得物理分辨率
分辨率区别
- 物理分辨率:物理设备真实的像素点,例如iphone 14 pro max, 物理分辨率 1290*2796
- 逻辑分辨率:为了抹平物理分辨率的差异,更好的做界面适配,在物理分辨率上层抽象出来的一个概念,例如iphone 14 pro max,逻辑分辨率 430*932
物理分辨率和逻辑分辨率的比值,即 Dpr=物理分辨率/逻辑分辨率
,iphone 14 pro max 的 Dpr = 3