2016-01-23 45 views
0

在Unity和NGUI中遇到小问题。 NGUI拥有UITexture作为其主要纹理,例如Unity拥有GUITexture。Unity3d发行NGUI UITexture/Facebook www个人资料图片

我向Facebook发送了一个请求,以获取用户个人资料图像,它发回一个完美的url,如果我把它放在浏览器中工作正常。

我的问题是将Texture2D(Facebook API做为Texture2D)并将其放在我的UITexture上。出于某种原因,它只是不正确。我一直得到它的空值。我也使用移动社交以及资产商店的任何帮助,帮助。

这是我的代码片段。

private void UserDataLoaded(FB_Result result) 
{ 
    SPFacebook.OnUserDataRequestCompleteAction -= UserDataLoaded; 
    if (result.IsSucceeded) 
    { 
     Debug.Log("User Data Loaded!"); 
     IsUserInfoLoaded = true; 

     string FBNametxt = SPFacebook.Instance.userInfo.Name; 
     UILabel Name = GameObject.Find("FBName").GetComponent<UILabel>(); 
     Name.text = FBNametxt; 

     Texture2D FBLoadTex = SPFacebook.Instance.userInfo.GetProfileImage(FB_ProfileImageSize.normal); 
     FBGetProfile.GetComponent<UITexture>().mainTexture = FBLoadTex != null ? FBLoadTex : PlaceHolderImg; 
    } 
    else { 
     Debug.Log("User data load failed, something was wrong"); 
    } 
} 

占位符图像只是一个已经选择的图像,如果fbprofile图片是空的。我不断收到.....

+0

任何人有一个修复?我一直坚持这一点,现在几乎一天... – user19983

+0

这些天使用“ngui”是不现实的;它已被弃用4?年份。只需使用内置的Unity.UI。 – Fattie

回答

1

这是可能的,你正在寻找RawImage其存在为此

http://docs.unity3d.com/Manual/script-RawImage.html

由于RAW图像不要求一个精灵的质感,你可以用它来显示Unity播放器可用的任何纹理。例如,您可能会使用WWW类或游戏中的对象显示从URL下载的图像。

使用Unity.UI并使用该功能。

+0

这真的帮了我很大的忙。我继续使用原始图像。但是,一旦用户之前已经登录,我就会遇到另一个问题。他们自动登录并且fb图片显示一个红色问号。关于做这个话题,我想不出为什么..... :( – user19983

+0

好吧继续前进,问一个新的问题,尽量清楚,祝你好运! – Fattie

-1

添加“Ngui Unity2d雪碧”组件,而不是UiTexture在编辑个人资料照片,并在您Fb的回调使用下面的代码

private void ProfilePicCallBack (FBResult result) 
    { 
     if (result.Error != null) { 
      Debug.Log ("Problem with getting Profile Picture"); 

      return; 
     } 

ProfileImage.GetComponent<UI2DSprite>().sprite2D = Sprite.Create(result.Texture, new Rect(0,0,128,128), new Vector2(0,0)); 

} 

有可能是另一种方式来做到这一点。但这工作对我来说