示例#1
0
        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);
                }
            }
        }