# Android Unity 接入步骤

# 添加 SDK 包

参考 Android 接入教程 添加 SDK 包到工程中

# 初始化 sdk 配置(C#)

2.16.0 以及以上版本(比如 2.16.0、2.16.1 等)

AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass slugWebAdapter = new AndroidJavaClass("com.tencent.slugsdk.SlugWebAdapter");
/*
* 初始化sdk配置,在登录后进入游戏大厅界面调用初始化,通用版本使用
* @context Content类型,可以传当前activity对象
*/
slugWebAdapter.CallStatic("initSlugSDKConfig", currentActivity);

/*
* 初始化sdk配置,在登录后进入游戏大厅界面调用初始化,接入高清视频版本时使用
* @context Context类型,可以传当前activity对象
* @appkey String类型,高清视频appkey
* @platform int类型,高清视频platform
* @stdfrom String类型,高清视频stdfrom
* */
slugWebAdapter.CallStatic("initSlugSDKConfig", currentActivity, appkey, platform, stdfrom);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

2.16.0 以下版本(比如 2.15.0、2.15.1 等)需要传 gameId 参数

AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass slugWebAdapter = new AndroidJavaClass("com.tencent.slugsdk.SlugWebAdapter");
/*
* 初始化sdk配置,需要提前初始化(在登录进入游戏大厅界面调用初始化),没接高清视频时使用
* @context Content类型,可以传当前activity对象
* @gameId String类型,游戏id,申请SlugSDK时分配
*/
slugWebAdapter.CallStatic("initSlugSDKConfig", currentActivity, gameId);

/*
* 初始化sdk配置,需要提前初始化(在登录进入游戏大厅界面调用初始化),接入高清视频时使用
* @context Context类型,可以传当前activity对象
* @gameId String类型,游戏id,申请SlugSDK时分配
* @appkey String类型,高清视频appkey
* @platform int类型,高清视频platform
* @stdfrom String类型,高清视频stdfrom
* */
slugWebAdapter.CallStatic("initSlugSDKConfig", currentActivity, gameId, appkey, platform, stdfrom);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 打开微社区(C#)

注意:打开微社区会打开一个 activity(在新进程), 这时游戏的 activity 将处于后台(处于后台可能与服务器连接会断开),返回游戏大厅时游戏注意如果与服务器连接断开需要游戏自动重新连接下

AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass slugWebAdapter = new AndroidJavaClass("com.tencent.slugsdk.SlugWebAdapter");

/*
* @currentActivity: Activity类型,当前activity
* @url: String类型,打开的页面url, 无需带msdk登录态参数,SDK会自动调用MSDK的接口处理登录态,但需要自己拼接用户参数,参考下面的拼接用户参数
* @supportedOrientations: int类型,设置屏幕方向类型(1:只支持横屏,2:只支持竖屏,3:横竖屏都支持)
* @qqAppid: String类型,游戏的QQ Appid, QQ分享时需要
* @wxAppid: String类型,游戏的微信Appid, 微信分享时需要
* @className: String类型,比如"com.tencent.ingame.UnityPlayerActivity",从H5页面跳转到游戏的某个界面,如果不需要可以设置为"",H5页面跳转到游戏的某个界面时,会先跳转到游戏的该Activity(Activity声明需设置singleTask或singleTop)再由该Activity作为中转跳转到具体的游戏界面,该Activity先在onNewIntent方法setIntent(intent),然后可以通过getIntent().getStringExtra("routeInfo")获取跳转的路由信息,比如关闭浏览器时获取的routeInfo值为"close"
* @finishShouldSendMsgToGame boolean类型,浏览器webview finish时向游戏发送close消息,不需要可以传false,如果需要则必须先设置@className参数
* @webviewBackground String类型,设置打开的浏览器背景颜色,比如"#ffffffff"
*/、
slugWebAdapter.CallStatic("openIngameCommunityByUrl", currentActivity, url, supportedOrientations, qqAppid, wxAppid, className, finishShouldSendMsgToGame, webviewBackground);

//2.16.7以及以上版本还支持传gameObjectName、methodName通过UnitySendMessage实现关闭浏览器时向游戏发送close消息, 如果不需要发送消息gameObjectName和methodName传null即可。
slugWebAdapter.CallStatic("openIngameCommunityByUrl", currentActivity, url, supportedOrientations, qqAppid, wxAppid, gameObjectName, methodName, webviewBackground);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 拼接用户参数

游戏客户端需在微社区首页 URL 上拼接以下参数:

参数名 描述 必须
openid 游戏的 openid 如果是 msdkv5 版本则必传
gameid_v5 msdkv5 分配的游戏的 gameid 如果是 msdkv5 版本则必传
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/?openid=xxx&gameid_v5=xxx&areaid=1&platid=0&partition=8195&roleid=2306687434798319382&lng=113.944527&lat=22.547869

示例二:

首页 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment

拼接后 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment&openid=xxx&gameid_v5=xxx&areaid=2&partition=0&platid=1&roleid=40520350780&lng=113.944527&lat=22.547869