Beispiel #1
0
        IEnumerator Run()
        {
            _started = true;

            LoadItem item = null;

            while (true)
            {
                if (_items.Count > 0)
                {
                    item = _items[0];
                    _items.RemoveAt(0);
                }
                else
                {
                    break;
                }

                if (_pool.ContainsKey(item.url))
                {
                    //Debug.Log("hit " + item.url);

                    NTexture texture = (NTexture)_pool[item.url];
                    texture.refCount++;

                    if (item.onSuccess != null)
                    {
                        item.onSuccess(texture);
                    }

                    continue;
                }

                string url = _basePath + item.url + ".ab";

                var www = new WWW(item.url);
                yield return(www);

                if (string.IsNullOrEmpty(www.error))
                {
                    if (www.texture == null)
                    {
                        Debug.LogWarning("Run Window->Build FairyGUI example Bundles first.");
                        if (item.onFail != null)
                        {
                            item.onFail(www.error);
                        }
                        continue;
                    }
                    NTexture texture = new NTexture(www.texture);

                    texture.refCount++;

                    _pool[item.url] = texture;

                    if (item.onSuccess != null)
                    {
                        item.onSuccess(texture);
                    }
                }
                else
                {
                    if (item.onFail != null)
                    {
                        item.onFail(www.error);
                    }
                }
            }

            _started = false;
        }