void DownloadHeadImg (string headImgUrl, string name) {
UnityWebRequest request = new UnityWebRequest (headImgUrl);
DownloadHandlerTexture textureHandler = new DownloadHandlerTexture (true);
request.downloadHandler = textureHandler;
request.SendWebRequest ().AsAsyncOperationObservable ()
.Subscribe (_ => {
if (_ != null && !_.webRequest.isNetworkError && !_.webRequest.isHttpError) {
var imgData = request.downloadHandler.data;
//儲存頭像到本地
File.WriteAllBytes (GetHeadImgPath (name), imgData);
ChangeHeadImg (ChangePlayerIcon);
SDKSupervisorDemo.GADesignEvent_NoKey ("FB_HeadDownload_success");
} else {
Debug.LogError ("下載下傳頭像失敗");
}
});
}
void ChangeHeadImg (Callback<Sprite> callback) {
// Debug.LogError (GetHeadImgPath (userSaveData.fbName));
if (!File.Exists (GetHeadImgPath (userSaveData.fbName))) {
Debug.LogError ("頭像不存在!!!");
callback (defaultPlayerIcon);
return;
}
byte[] data = File.ReadAllBytes (GetHeadImgPath (userSaveData.fbName));
Texture2D imageTexture = new Texture2D (128, 128);
imageTexture.LoadImage (data);
Sprite sp = Sprite.Create (imageTexture, new Rect (0, 0, imageTexture.width, imageTexture.height), Vector2.zero, .01f);
callback (sp);
}
string GetHeadImgPath (string name) {
var hashCode = name.GetHashCode ();
return string.Format ("{0}/{1}.png", Application.persistentDataPath, "PlayerMessageIcon" + hashCode);
}