主题
Skip to content
好友排行榜
介绍
是否是渠道必接:可选
为游戏设计利于传播的元素
字节小游戏平台提供了非常多样的分发手段,如抖音小游戏中心,录屏分享等,但小游戏在平台最核心且最可控的分发方式是通过游戏玩法引导用户自发进行社交传播,因此开发者在游戏设计中,需要尽可能设计有利于游戏裂变的元素。
排行玩法:多人竞技、社交传播
小游戏无需下载、即点即玩的特点,非常适合邀请抖音的好友进行互动,排行榜是小游戏必不可少的元素,朋友间的对比能够有效激发用户的游戏动力和传播动力,根据实验发现,上线了好友排行榜功能的游戏,整体活跃时长+8%,留存+3%,新增活跃用户数+14.5%,是非常正向的能力
但在整体排行榜的开发中,开发者会遇到几个关键的难点:
因此,平台开发了一个通用组件,通过几行代码,即可生成游戏内的排行玩法,快速助力开发者丰富游戏功能,实现流量裂变
功能简介
SDK整合了微小和抖音的好友排行榜接口,减少不同渠道的接入、维护成本
前置条件
微信需要在开发者后台开启朋友圈功能
接入
微信
接入流程
1. 发布添加微信后台的插件
https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx7a727ff7d940bb3f\&token=\&lang=zh\_CN
2. 打包勾选好友关系链
游戏内的UI
拼一个UI,在中间空白创建一个RawImage,图片用一张纯白色的不透明图
锚点使用左上,pivot为左上
RawImage要修改旋转 X 180,并赋值一张纯色图片,尺寸 32*32 就可以
对排行榜进行初始化
c#
XYX.InitRank(new InitRankOptions()
{
rawImage = this.RawImage
});
打开和关闭排行榜
C#
//打开排行榜
XYX.OpenRank(null);
//关闭排行榜
XYX.CloseRank();
上传排行榜名次
c#
//上传排行榜
//int score;一般使用int分数或者排名
SetRankOptionssetRankOptions = new SetRankOptions();
setRankOptions.value = score.ToString();
setRankOptions.OnSetRankCompleteCallback = (bool isSuccess) =>
{
if (isSuccess)
{
Clog.Log("上传成功");
}
else
{
Clog.Log("上传失败");
}
};
XYX.UpLoadRank(setRankOptions);
常见问题
微信排行榜界面不能使用TMP字体和图集,图片单独放置不打图集
添加新微信好友后的2小时内, 可能获取不到该新好友的数据。
微信官方关于开放数据的文档:感兴趣的可看
https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/OpenData.md
抖音
接入流程
设置用户排行榜信息
C#var rank = -1; if (int.TryParse(InputField_Rank.text, out rank) && rank > 0) { SetRankOptions setRankOptions = new SetRankOptions(); //数据类型 //可选值: 0 或 1 //0 表示数据为数字类型,往往适用于游戏的通关分数; // 1 表示数据为字符串类型,适用于段位信息(如 '青铜'、'白银') setRankOptions.dataType = 0; // 数据值 setRankOptions.value = rank.ToString(); setRankOptions.priority = 0; XYX.UpLoadRank(setRankOptions); LogUI.Log($"设置排行榜信息:{rank}"); } else LogUI.Log("请输入正确的排行信息");
打开排行榜
C#LogUI.Log("打开每日好友榜"); RankOptions rankOptions = new RankOptions(); rankOptions.rankType = "day"; rankOptions.isAllUser = false; rankOptions.suffix = ""; rankOptions.rankTitle = "每日好友榜"; XYX.OpenRank(rankOptions);
C#LogUI.Log("打开每周总榜"); RankOptions rankOptions = new RankOptions(); rankOptions.rankType = "week"; rankOptions.isAllUser = true; rankOptions.suffix = ""; rankOptions.rankTitle = "每周好友榜"; XYX.OpenRank(rankOptions);
接口详细说明
1. 设置用户排行榜数据
接口
sql
void XYX.UpLoadRank(SetRankOptions setRankOptions)
参数说明
SetRankOptions成员 | 类型 | 参数说明 |
---|---|---|
dataType | int | 可选值: 0 或 10 表示数据为数字类型,往往适用于游戏的通关分数(如 103分、105分); 1 表示数据为字符串类型,适用于段位信息(如 '青铜'、'白银') |
value | string | 展示出来的数值,dataType 为 0 时只能传正数的字符串 (如'103', '105'),且取值范围为 [0, int32_MAX),否则会报错。dataType 为 1 时,则可传入任意字符串(eg:'青铜'、'白银') |
priority | int | 用于判断权重 ,仅当 dataType 为 1 时需要,不传则使用默认值 0。如传入 value 为'白银',priority 为 2,则白银的权重为 2,传入value 为 '黄金',priority 为 3,则黄金的权重为3,高于白银,届时生成的榜单,黄金段位会排在白银前面 |
extra | string | 预留字段 |
sql
public class SetRankOptions
{
/// <summary>
/// 数据类型
/// </summary>
public int dataType;
/// <summary>
/// 数据值
/// </summary>
public string value;
/// <summary>
/// 优先级
/// </summary>
public int priority;
/// <summary>
/// 预留字段
/// </summary>
public string extra;
}
2. 打开排行榜
接口
点我快速对接


