使用 TapTap.Achievement 前提是必须依赖以下库:
using TapTap.Achievement;
TapAchievement.RegisterCallback(IAchievementCallback callback);
private class AchievementCallback:IAchievementCallback{
public void OnAchievementSDKInitSuccess()
{
//成就SDK 初始化成功
}
public void OnAchievementSDKInitFail(TapError errorCode)
{
if (errorCode != null)
{
//初始化失败
}
}
public void OnAchievementStatusUpdate(TapAchievementBean bean, TapError errorCode)
{
if (errorCode != null)
{
// 成就状态更新失败
return;
}
if (bean != null)
{
// 成就状态更新更新
}
}
}
由于成就系统会在本地记录用户的成就数据,所以请在用户登录后初始化数据。 这个步骤是异步操作,需要确认收到成功回调时才能进行更多操作。
TapAchievement.InitData();
获取全部成就数据分为服务器数据以及本地数据。
// 获取本地数据
TapAchievement.GetLocalAllAchievementList((list, code) =>
{
if (code != null)
{
// 获取成就数据失败
}
else
{
// 获取成就数据成功
});
}
// 获取服务器数据
TapAchievement.FetchAllAchievementList((list, code) =>
{
if (code != null)
{
// 获取成就数据失败
}
else
{
// 获取成就数据成功
});
}
// 获取本地数据
TapAchievement.GetLocalUserAchievementList((list, code) =>
{
if (code != null)
{
// 获取成就数据失败
}
else
{
// 获取成就数据成功
});
}
// 获取服务器数据
TapAchievement.FetchUserAchievementList((list, code) =>
{
if (code != null)
{
// 获取成就数据失败
}
else
{
// 获取成就数据成功
});
}
// displayID 为 DC 中添加成就时自行设定的 成就ID
TapAchievement.Reach(reachId);
成就增长步数提供两种方式调用,growSteps 中传递当前增量达成的步数(例如:多走了5步,则传递5即可),makeSteps 中传递当前成就已达成的步数,(例如:当前已经走了100步,则传递100),调用 growSteps 时 SDK 内部会计算当前全量步数。
TapAchievement.GrowSteps(reachId, step);
TapAchievement.MakeSteps(reachId, step);
TapAchievement.SetShowToast(bool isShow);
TapAchievement.ShowAchievementPage();
public string id;// 成就 id
public string displayId;// id
public int visible = VisibleFalse;//是否是隐藏成就
public string title;//标题
public string subTitle;//副标题
public string achieveIcon;// 图标
public int step;//设定步数
public bool fullReached;//是否达成
public int reachedStep;//达成步数
public long reachedTime;//达成时间
public AchievmentStats stats;//当前成就稀有度指标