从IResult获取纹理(Facebook Unity SDK 7.0.3b)

时间:2015-09-09 19:00:52

标签: facebook facebook-unity-sdk

您好,感谢您的关注。我正在尝试更新我的Unity / Facebook Canvas游戏以使用最新的Facebook SDK 7.0.3b。我看到他们已经做了一些更改,并且很少或没有任何文档已经更新以反映这些更改。

虽然它有点令人困惑,但我正在努力解决“破坏”的变化,但是对于FBResult的IResult替代让我有点沮丧,特别是在尝试检索用户的个人资料图片时。以前,我可以简单地从FBResult中提取纹理,但是IResult似乎没有相同的构成,我不确定如何继续。

编辑添加:我从IResult返回Text时遇到了同样的问题,这对于FBResult来说过去很简单。当然,我只是错过了一些简单的东西,对吗?

以下是我用于完成此任务的上一代码的示例。如果有人能够向我提供一个更新的例子,或者让我朝着正确的方向进行这些必要的改变,我当然会很感激。谢谢!

void FBProfilePicture(FBResult result)
{
    if(result.Error != null)
    {
        Debug.Log(gameObject.name + " reports: Problem retrieving FB profile picture!");
        return;
    }
    Image UserAvatar = UIFBAvatar.GetComponent<Image>();
    UserAvatar.sprite = Sprite.Create(result.Texture, new Rect(0, 0, 128, 128), new Vector2(0, 0));
    SpriteRenderer userPic = UserPic.GetComponent<SpriteRenderer>();
    userPic.sprite = Sprite.Create(result.Texture, new Rect(0, 0, 128, 128), new Vector2(0, 0));
}

2 个答案:

答案 0 :(得分:0)

您必须执行以下操作:

  1. 添加&#39; this.Texture = result.texture;&#39;到GraphResult构造函数。
  2. 添加&#39; public Texture2D Texture {get;私人集; }&#39;至 GraphResult.cs
  3. 添加&#39; Texture2D纹理{get; }&#39;到IGraphResult.cs,以及 &#39;使用UnityEngine;&#39;
  4. 随着这两个条款的变化,现在你的IGraphResult将包含你之前拥有的纹理,你可以继续工作,就像什么都没发生一样!

    让我知道结果如何。

答案 1 :(得分:0)

对于从旧版SDK更新的任何人。

result.error不再返回null。

更改为:

if (result.error == "") 
{
     Debug.Log(gameObject.name + " reports: Problem retrieving FB profile picture!");
     return;
}