跳到主要内容
版本:v4

好友(含聊天)开发指南

本文介绍如何在游戏中加入好友&聊天系统。

权限说明

集成前准备

参考 准备工作 创建应用、开启好友服务。

SDK 获取

第一步:添加 SDK 所需的外部依赖

SDK 内部使用了部分第三方库,开发者接入时需先确保 SDK 外部依赖库已正常接入,具体设置如下:

  1. SDK 使用的 JSON 解析库为 Newtonsoft-json,如果当前工程已接入该依赖库,则不需额外处理,否则需在 Packages/manifest.json 添加如下依赖:
"com.unity.nuget.newtonsoft-json":"3.2.1"
  1. SDK 使用 com.google.external-dependency-manager 管理 Android、iOS 依赖,如果当前工程已接入该依赖库,则不需额外处理,否则需在 Packages/manifest.json 添加如下依赖:
{
"dependencies": {
"com.google.external-dependency-manager": "1.2.179"
},
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"com.google.external-dependency-manager"
]
}
]
}

第二步:添加 SDK 依赖

SDK 支持 Unity Package Manager本地文件导入两种集成方式,开发者根据需求选择其中一种即可,推荐使用远程依赖。

远程依赖

SDK 支持通过 NPMJS 及 GitHub 两种方式,开发者选择其中一种即可。

1. NPMJS 接入

在项目的 Packages/manifest.json 文件中添加以下依赖:

"dependencies":{
"com.taptap.sdk.core":"4.6.1",
"com.taptap.sdk.login":"4.6.1",
"com.taptap.sdk.relation":"4.6.1",
}

但需要注意的是,需在 Packages/manifest.jsondependencies 同级下声明 scopedRegistries

"scopedRegistries":[
{
"name": "NPMJS",
"url": "https://registry.npmjs.org/",
"scopes": ["com.taptap"]
}
]
2. GitHub 接入

在项目的 Packages/manifest.json 文件中添加以下依赖:

"dependencies":{
"com.taptap.sdk.core":"https://github.com/taptap/TapSDKCore-Unity.git#4.6.1",
"com.taptap.sdk.login":"https://github.com/taptap/TapSDKLogin-Unity.git#4.6.1",
"com.taptap.sdk.relation":"https://github.com/taptap/TapSDKRelation-Unity.git#4.6.1",
}

在 Unity 顶部菜单中选择 Window > Package Manager 可查看已经安装在项目中的包。

本地文件导入

  1. 下载页 下载下列模块对应 unitypackage 文件,并在 Unity 项目中依次通过 Assets > Import Packages > Custom Packages 进行导入,包括:
  • TapSDK_Core.unitypackage TapTapSDK 核心模块,必选
  • TapSDK_Login.unitypackage TapTapSDK 登录模块,必选
  • TapSDK_Relation.unitypackage TapTapSDK 好友模块,必选
  1. 如果当前项目已集成 Newtonsoft.Json 依赖,则忽略该步骤,否则在 NuGet.org Newtonsoft.Json 页面中通过点击右侧 「Download package」 下载库文件,并将下载的文件后缀从.nupkg 修改为 .zip,同时解压该文件并复制内部的 Newtonsoft.Json.dll 文件拷贝到工程 AssetsPlugins 目录下,另外为了避免导出 IL2CPP 平台时删除必要数据,需在 Assets 目录下创建 link.xml 文件(如果已有该文件,则添加如下内容),其内容如下:
<linker>
<assembly fullname="System.Core">
<type fullname="System.Linq.Expressions.Interpreter.LightLambda" preserve="all" />
</assembly>
</linker>

SDK 初始化

详见 TapTapSDK 初始化文档

TapTapSdkOptions 详细参数见 入门指南#快速开始

using TapSDK.Core;
using TapSDK.Relation;

// 核心配置 详细参数见 [TapTapSDK]
TapTapSdkOptions coreOptions = new TapTapSdkOptions();
// 设置屏幕方向:0-竖屏 1-横屏
coreOptions.screenOrientation = 1;
// TapSDK 初始化
TapTapSDK.Init(coreOptions, otherOptions);

注册监听回调

好友聊天 SDK 中包含多个监听回调,分别会在未登录/有新增粉丝/有新增消息时被调用。

using TapSDK.Relation;

RelationCallback callback = new RelationCallback();
TapTapRelation.RegisterRelationCallback(callback);
TapTapRelation.UnregisterRelationCallback(callback);

class RelationCallback : ITapTapRelationCallback
{

public RelationCallback(){}

public void OnMessengerCodeResult(int code)
{
// 处理好友聊天的状态码
// code 400001 需要用户登录
}

public void OnNewFansCountChanged(int newFansCount)
{
// 新增粉丝数量变化
// newFansCount 新增粉丝数
}

public void OnUnreadMessageCountChanged(int unreadMsgCount)
{
// 新增未读消息数量变化
// unreadMsgCount 新增未读消息数
}

}

准备阶段

进入聊天之前的一些准备工作。

using TapSDK.Relation;

TapTapRelation.Prepare();

开始聊天

打开聊天页面,根据初始化参数 screenOrientation 会有不同的动画表现。

using TapSDK.Relation;

TapTapRelation.StartMessenger();

邀请好友上线

打开邀请好友页面,向选中好友发送邀请上线消息。

using TapSDK.Relation;

TapTapRelation.InviteGame();

邀请好友组队

打开邀请好友页面,向选中好友发送邀请组队消息,需要传组队相关参数teamId。

using TapSDK.Relation;

string teamId = "";
TapTapRelation.InviteTeam(teamId);

获取新增粉丝数

获取当前用户新增粉丝的数量,也可在callback中处理。

using TapSDK.Relation;

TapTapRelation.GetNewFansCount((count) =>
{
Log($"新粉丝数量: {count}");
});

获取新增消息数

获取当前用户新增消息的数量,也可在callback中处理。

using TapSDK.Relation;

TapTapRelation.GetUnreadMessageCount((count) =>
{
Log($"未读消息数量: {count}");
});

展示 TapTap 用户名片

展示指定用户的名片弹窗,可用于关注/取关用户,传入用户的openId或者unionId。

using TapSDK.Relation;

string openId = "";
string unionId = "";
TapTapRelation.ShowTapUserProfile(openId, unionId);

国际化

TapTapRelation 支持设置语言:目前只支持简体中文