1

我正在尝试使用 Facebook Unity SDK 实现成就。

我希望有人能给我一个定性描述执行此操作所需的过程。

这是我到目前为止所做的。

  • 在服务器上托管 Web 构建
  • 在此站点上创建了一个成就文件夹并创建了一个测试成就 html 文件,如https://developers.facebook.com/blog/post/539/

    我的主要困惑是注册成就和设定成就之间的区别。

注册成就是否只需要完成一次,如果需要,应该在哪里完成?我是否需要统一创建一个脚本来注册我在其余测试之前运行的游戏的所有成就?此外,我不确定方法调用如何用于注册和发布成就。我的印象是我需要调用 FB.API(string endpoint,Facebook.HttpMethod,FacebookDelegate callback,Dictionary formData)

但我真的不确定输入参数需要是什么。

到目前为止,这是我的尝试(我很确定我使用的字符串端点是错误的)

private void RegisterAchievement()
{
    string achievement ="http://www.invadingspaces.com/unity/testing/Achievements/ach1.html";
    string appID = "999408935255000";
    string achievement_display_order = "1"; 

    string achievement_registration_URL = "https://graph.facebook.com/"+ appID + "/achievements";
    FB.API(achievement_registration_URL+","+"achievement="+ achievement+ "&display_order=" +achievement_display_order+ "&access_token=" + FB.AccessToken ,Facebook.HttpMethod.POST,null,null);
}

提前致谢。

4

1 回答 1

2

我建议查看一般的 Facebook 成就 API:https ://developers.facebook.com/docs/games/achievements/

您也可以先测试使用图形资源管理器实际放置的内容,然后将其放入图形中。: https ://developers.facebook.com/tools/explorer

因此,例如要创建一个新的成就,它就是这样:

var dict = new Dictionary<string,string>();
dict["achievement"] = "<URL_TO ACHIEVEMENT_HERE>";
FB.API(FB.AppId+"/achievements", Facebook.HttpMethod.POST, null, dict);

要获得所有游戏成就,它是:

FB.API(FB.AppId+"/achievements", Facebook.HttpMethod.GET);

然后要奖励玩家一个成就,就是这样:

var dict = new Dictionary<string,string>();
dict["achievement"] = "<URL_TO ACHIEVEMENT_HERE>";
FB.API(FB.UserId+"/achievements", Facebook.HttpMethod.POST, null, dict);

为了让玩家完成他们的成就,它是:

FB.API(FB.UserId+"/achievements", Facebook.HttpMethod.GET);
于 2013-09-24T23:55:38.687 回答