我试图在Unity中为我的游戏添加一些成就,并且在添加第二个成就时遇到了问题。我做的第一件事是在iTunesConnect上创建一个成就,然后编写一些代码,看看我是否可以将这个成就联系起来。那项工作和取得成就的进展似乎总能奏效。由于我得到了第一个工作,我决定将我的所有成就添加到iTunesConnect并添加代码来处理它们。
当我调用相同的代码来设置新成就的进度时,它会失败。在预先存在的成就上调用该代码成功。这是我的代码的样子:
public void Initialize()
{
Social.localUser.Authenticate (DoAuth);
}
public void DoAuth(bool success)
{
Social.LoadAchievements (DoLoadAchievements);
}
public void DoLoadAchievements(IAchievement[] achievements)
{
for(int i = 0; i < achievements.Length; i++)
{
Debug.Log(System.String.Format("Achievement {0}: {1}", i, achievements[i].id));
}
IAchievement achievement = Social.CreateAchievement();
achievement.id = "NewAchievement";
achievement.percentCompleted = 0.0;
achievement.ReportProgress( result => {
if(result)
Debug.Log("GOOD");
else
Debug.Log("BAD");
});
}
当我打印出成就时,我发现我的初步成就是有效的,但这是代码中成就列表中唯一的成就。新的成就未能得到确定。我也尝试使用Social静态函数ReportProgress,但也失败了。
任何人都知道我能做些什么才能让我的第二个成就(以及其他成就)发挥作用?
编辑:我还通过在GameCenter应用程序中擦除记录然后点击删除来删除GameCenter上该设备帐户的信息(AFAIK)。