# 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
[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

# 添加横竖屏切换功能

如果游戏只支持竖屏,却需要微社区支持横屏或横竖屏切换;或者游戏只支持横屏,却需要微社区支持竖屏或横竖屏切换,就需要做如下特殊处理:

添加红框内的代码:

#import "IngameCustomNSURLProtocol.h"

if ([IngameCustomNSURLProtocol isIngameBrowserViewController]) /*微社区支持所有方向,其他的跟游戏的方向保持一致*/
    return UIInterfaceOrientationMaskAll;
1
2
3
4

如果在iOS 13及以上版本不能横竖屏切换或者微社区没有全屏显示(iPad上可能出现),请检查IngameBrowserViewControllerAdapter.mm,确保存在红框内的语句(如果没有的话请自行添加):

/*修复iOS 13中不能横竖屏切换的问题:iOS 13中modalPresentationStyle的默认值为UIModalPresentationAutomatic,iOS 13以前的系统其默认值为UIModalPresentationFullScreen*/
navigationController.modalPresentationStyle = UIModalPresentationFullScreen;
1
2