public static void LoadCustomAssetApi(AssetInfo assetInfo, PrefabObject o, ref GameEntity loadCounter, Dictionary <string, Type> typesInDll) { string assetName = assetInfo.AssetName; string assetBundleUri = o.Resources.Bundle; RequestAsset requestAsset = new RequestAsset(assetName, assetBundleUri, new object[] { o, assetInfo }); GameEntity counter = loadCounter; requestAsset.OnFinish += responseAsset => { RequestTexture requestDownLoad = new RequestTexture(Settings.Instance().ApiHost + o.Resources.Icon, 128, 128, TextureFormat.DXT1); requestDownLoad.OnFinish += responseUri => { ResponseTexture responseTexture = (ResponseTexture)responseUri; Texture2D texture2D = responseTexture.Texture; Sprite sprite = Sprite.Create(texture2D, new Rect(0, 0, 128, 128), Vector2.zero); CreatePrefabEntity(responseAsset, ref counter, o, sprite); }; requestDownLoad.OnError += s => { CreatePrefabEntity(responseAsset, ref counter, o); }; }; }
protected override IEnumerator SendRequest() { Texture2D tex; tex = new Texture2D(_width, _height, _format, false); using (UnityEngine.WWW www = new UnityEngine.WWW(Uri)) { yield return(www); try { www.LoadImageIntoTexture(tex); ResponseTexture responseTexture = new ResponseTexture(); responseTexture.Texture = tex; ((IRequest)this).OnResponseDone(responseTexture); } catch (Exception e) { ((IRequest)this).OnResponseError("Texture can not be loaded! " + e.Message); } } }