# iOS Unity 接入步骤

# 引入文件到项目中

# 解压邮件附件中的 zip 包, 将其中的所有文件拷贝到 Unity 工程的 "Assets\Plugins\iOS" 中

# 添加权限

为了支持长按保存图片(不支持长按保存 iframe 中的图片),需在 Info.plist 中添加配置项 NSPhotoLibraryAddUsageDescriptionNSPhotoLibraryUsageDescription

# 拼接用户参数

首先游戏客户端需在微社区首页 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
/*
	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

# 添加横竖屏切换功能

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

修改 UnityAppController.mm,添加红框内的代码(添加到函数的最前面):

#import "IngameCustomNSURLProtocol.h"

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