2015-08-14 44 views
0

我想將一個base64字符串變成一個在Unity 3D中的精靈,但是我的場景中的精靈仍然是空白的。加載一個來自websocket的base64字符串的精靈

public var cardPicture : Image; 

function ReceiveData(jsonReply : JSONObject) { 
    var pictureBytes : byte[] = System.Convert.FromBase64String(jsonReply.GetString("picture")); 
    var cardPictureTexture = new Texture2D(720, 720); 
    Debug.Log(cardPictureTexture.LoadImage(pictureBytes)); 
    var sprite : Sprite = new Sprite(); 
    sprite = Sprite.Create (cardPictureTexture, new Rect (0,0,720,720), new Vector2 (0.5f, 0.5f)); 
    cardPicture.overrideSprite = sprite; 
} 

這打印出來是真實的,但我不知道它是否正確地從字節加載圖像或如果別的東西出錯了。我不確定要檢查什麼以確定發生了什麼問題。爲場景中的卡片分配一些圖片正確顯示。

我記錄了jsonReply.picture,並使用在線base64圖像轉換器,它正確顯示圖像。

回答

0

我假設你正試圖從遠程URL獲取圖像,並嘗試將字節解析爲紋理。統一WWW促進了這一點,並不需要用戶參與轉換。

我相信你的迴應可能有頭部細節,這可能會導致轉換爲紋理問題。您可以使用下面的代碼,

public string Url = @"http://dummyimage.com/300/09f/fff.png"; 

    void Start() { 
     // Starting a coroutine to avoid blocking 
     StartCoroutine ("LoadImage"); 
    } 

    IEnumerator LoadImage() 
    { 
     WWW www = new WWW(Url); 
     yield return www; 

     Debug.Log ("Loaded"); 
     Texture texture = www.texture; 
     this.gameObject.GetComponent<Renderer>().material.SetTexture(0,texture); 
    } 
+0

圖片來自websocket連接:/ – Waltari

相關問題