# Unity iOS 接入教程
# 引入文件到项目中
参考 iOS 接入教程
# 将 IngameBrowserViewControllerAdapter.mm
拷贝到 Unity 工程的 "Assets\Plugins\iOS" 中,游戏可修改该文件处理从微社区返回游戏时的逻辑(建议使用 UnitySendMessage
)
# 拼接用户参数
首先游戏客户端需在微社区首页 URL 上拼接以下参数:
参数名 | 描述 | 必须 |
---|---|---|
areaid | 账号类型:1(微信),2(QQ) | 是 |
partition | 区服 id,若无则传 0 | 是 |
platid | 平台类型:0(iOS),1(Android) | 是 |
roleid | 角色 id | 是 |
lng | 用户当前位置:经度 | 否 |
lat | 用户当前位置:纬度 | 否 |
示例一:
首页 URL:https://sy.qq.com/hyrzol/ingame/
拼接后 URL:https://sy.qq.com/hyrzol/ingame/?areaid=1&platid=0&partition=8195&roleid=2306687434798319382
示例二:
首页 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment
拼接后 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment&areaid=2&partition=0&platid=1&roleid=40520350780&lng=113.944527&lat=22.547869
# 打开微社区(C#)
/*可选功能:获取SDK配置(建议在进入游戏大厅时调用),gameId为申请SlugSDK时分配的游戏id*/
[DllImport ("__Internal")]
private static extern void getIngameCommunityConfig(string gameId);
1
2
3
2
3
[DllImport ("__Internal")]
private static extern void openIngameCommunityByUrl(string url, int supportedOrientations, string qqAppid, string wxAppid);
/*
第1个参数"首页的URL"不能含有#号,也无需带登录态参数,SDK会自动调用MSDK的接口拼上登录态参数
第2个参数为屏幕方向(1:只支持横屏,2:只支持竖屏,3:横竖屏都支持,默认值为3)
第3个参数"游戏的QQ Appid",建议传游戏的QQ Appid,也可传null或""
第4个参数"游戏的微信Appid",建议传游戏的微信Appid,也可传null或""
微社区UIViewController的背景色是透明的
*/
openIngameCommunityByUrl("带用户参数的首页 URL", 3, "游戏的QQ Appid", "游戏的微信Appid");
------------------------------------------------------------------------------------------------------
如果想自定义微社区UIViewController的背景色,就不要调用openIngameCommunityByUrl,而是调用openIngameCommunityByUrl3接口
[DllImport ("__Internal")]
private static extern void openIngameCommunityByUrl3(string url, int supportedOrientations, string qqAppid, string wxAppid, int red, int green, int blue, int alpha, int gameSupportedOrientations);
背景色采用RGBA,建议与微社区H5页面的背景色保持一致,alpha取值:0(完全透明)~ 255(完全不透明);gameSupportedOrientations传1表示游戏只支持横屏,传2表示游戏只支持竖屏
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 添加横竖屏切换功能
如果游戏只支持竖屏,却需要微社区支持横屏或横竖屏切换;或者游戏只支持横屏,却需要微社区支持竖屏或横竖屏切换,就需要做如下特殊处理:
添加红框内的代码:
#import "IngameCustomNSURLProtocol.h"
if ([IngameCustomNSURLProtocol isIngameBrowserViewController]) /*微社区支持所有方向,其他的跟游戏的方向保持一致*/
return UIInterfaceOrientationMaskAll;
1
2
3
4
2
3
4
如果在iOS 13及以上版本不能横竖屏切换或者微社区没有全屏显示(iPad上可能出现),请检查IngameBrowserViewControllerAdapter.mm,确保存在红框内的语句(如果没有的话请自行添加):
/*修复iOS 13中不能横竖屏切换的问题:iOS 13中modalPresentationStyle的默认值为UIModalPresentationAutomatic,iOS 13以前的系统其默认值为UIModalPresentationFullScreen*/
navigationController.modalPresentationStyle = UIModalPresentationFullScreen;
1
2
2