【问题标题】:Facebook Unity3d SDK doesnot include FBUtil and GameStateManager classesFacebook Unity3d SDK 不包含 FBUtil 和 GameStateManager 类
【发布时间】:2013-09-06 03:22:52
【问题描述】:

我正在尝试将 facebook sdk 集成到我的 unity android 游戏中。我在从开发者网站下载的 SDK 中找不到 FBUtil 和 GameStateManager。 我使用 FB.UserId 获得了 userId。也得到了回应

sending to Unity OnInitComplete({"access_token":"CAAUCMHNGlZCcBAHJBQAs7AoJNevkZAFbkpSRk60TURemvv4Y6IOu9NXjGcFjFRZAx9RoxwKT4ZBZASs0NLiYTmi4rl7RyWYdtxxhlKkSjoIWiqqDSBdSDKk0OppB2ZB4U6IgtqQs9PM8uNCaNF5xgqWn2c9DDkp4dJc9p38XONKpdwRF7qDHtM","user_id":"100003735696788","opened":true})

就在那之后,当我尝试使用 developer.facebook.com 上提供的代码获取用户的个人资料图片时,

void LoginCallback() {
FB.API (
    "/me/picture",
    Facebook.HttpMethod.GET,
    APICallback
);      

}

我得到的回答是 4 个问号。

????

问题出在哪里?请帮忙..

【问题讨论】:

  • 嗨@aaron,谢谢你的回复。我在获取个人资料图片时遇到的问题已通过使用硬编码链接http://graph.facebook.com/"+FB.UserId.ToString()+"/picture?type=large 解决,因为我没有使用此链接developers.facebook.com/docs/unity/reference/FB.API 得到来自 FB 的正确响应。您为 gamestatemanager 和 fbutil 提供的链接给出错误 "The snippet you're looking for has either been deleted by its owner or it never existed to begin with."
  • 我怀疑 FBUtil 和 GameStateManager 是 Friend Smash 演示应用程序中包含的类。提及它们的文档在 Friend Smash 教程 developers.facebook.com/docs/unity/tutorials/games/personalize 中,所以如果您需要这些类的功能,只需制作您自己的版本即可。
  • @NickMascarenhas,这些链接现在应该是公开的(隐身窗口至少对我有用),对此感到抱歉。应该支持 FB.API('/me/picture'...) 但不支持,我会为此做一个任务。感谢您的反馈!
  • @aaron,知道了。我现在可以看到代码了。感谢您的链接。
  • 谢谢@Aaron!这让我疯狂了 2 天,试图让 SDK 正常工作。我一直在寻找文档中引用的朋友粉碎代码。 /me/... 问题也让我发疯了。感谢您的关注。

标签: facebook-graph-api unity3d facebook-unity-sdk


【解决方案1】:

我在 Unity 中通过 WWW 使用了这个链接,效果很好。这正是我所做的

  1. 获得用户 ID 后,创建一个 WWW 对象,如下所示:

WWW url = new WWW("@987654321@");

  1. 然后在 LateUpdate 中,我放置了一个 IF 条件检查图片是否已加载,并带有一个称为加载的布尔值,以避免多次重新加载图片

    if (url.isDone && !loaded)
    {
        loaded = true;            
    
        Texture2D textFb2 = new Texture2D(50, 50, TextureFormat.ARGB32, false); //TextureFormat must be DXT5
    
        url.LoadImageIntoTexture(textFb2);
        PLANE_OR_QUAD_OBJECT.renderer.material.mainTexture = textFb2;
    
    }
    

注意:url 在整个类中可见并且已加载

如果您需要进一步的帮助,请告诉我!

【讨论】:

  • 我用这个得到了个人资料照片。此外,当我致电FB.API ( "/me/picture", Facebook.HttpMethod.GET, APICallback ); 时,我会在委托中以未定义的符号(例如“???????”)得到响应
【解决方案2】:

通常 Facebook 图片 API 应返回纹理类型而非文本的数据

例如,如果您使用类似@jkgm777 答案的代码,

WWW url = new WWW("http://graph.facebook.com/INSERT_USER_ID_HERE/picture");

您应该获得可用于替换场景中纹理对象的纹理类型。 但如果你想获取图片网址,请使用这个

http://graph.facebook.com/INSERT_USER_ID_HERE/picture?redirect=false

你会得到这个 JSON 响应

data: {
url: "{#IMAGE_URL#}",
is_silhouette: false
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多