# iOS Unity 接入步骤
# 引入文件到项目中
# 解压邮件附件中的 zip 包, 将其中的所有文件拷贝到 Unity 工程的 "Assets\Plugins\iOS" 中
# 添加权限
为了支持长按保存图片(不支持长按保存 iframe
中的图片),需在 Info.plist 中添加配置项 NSPhotoLibraryAddUsageDescription
、NSPhotoLibraryUsageDescription
# 拼接用户参数
首先游戏客户端需在微社区首页 URL 上拼接以下参数:
参数名 | 描述 | 必须 |
---|---|---|
openid | 游戏的 openid | 如果是 msdkv5 版本则必传 |
gameid_v5 | msdkv5提供的gameid,如:16293 | 如果是 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
# 打开微社区(C#)
/*
进入游戏大厅后注册中台播放器(注意:如果游戏不需要接中台播放器就忽略此接口!)
platform、from、appkey用于注册中台播放器,依次对应中台播放器的platform、stdfrom、appkey
*/
[DllImport ("__Internal")]
private static extern void getIngameCommunityConfig(string platform, string from, string appkey);
1
2
3
4
5
6
2
3
4
5
6
/*
url为微社区的首页地址,需拼接用户参数,无需带MSDK登录态,SDK会自动调用MSDK的接口拼上登录态参数
communitySupportedOrientations为微社区要支持的方向(1:只支持横屏,2:只支持竖屏,3:横竖屏都支持)
red、green、blue、alpha为微社区的背景色,取值范围都为0 ~ 255,alpha取值:0(完全透明)~ 255(完全不透明);如果不需要背景色,就都传-1
gameSupportedOrientations为游戏的方向(1:只支持横屏,2:只支持竖屏)
gameObjectName、methodName会传递给UnitySendMessage,从微社区返回游戏时会回调UnitySendMessage(gameObjectName, methodName, "");
建议游戏收到Message后打开游戏声音,可在打开微社区之前暂时关闭游戏的声音
特别注意:如果是Unity游戏,请确保gameObjectName、methodName对应的类和方法存在,不然从微社区返回游戏时会crash
*/
[DllImport ("__Internal")]
private static extern void openIngameCommunityByUrl(string url, int communitySupportedOrientations, int red, int green, int blue, int alpha, int gameSupportedOrientations, string gameObjectName, string methodName);
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 添加横竖屏切换功能
如果游戏只支持竖屏,却需要微社区支持横屏或横竖屏切换;或者游戏只支持横屏,却需要微社区支持竖屏或横竖屏切换,就需要做如下特殊处理:
修改 UnityAppController.mm,添加红框内的代码(添加到函数的最前面):
#import "IngameCustomNSURLProtocol.h"
if ([IngameCustomNSURLProtocol isIngameBrowserViewController]) /*微社区支持所有方向,其他的跟游戏的方向保持一致*/
return UIInterfaceOrientationMaskAll;
1
2
3
4
2
3
4