public void load(string uri)
        {
            if (this.uri == uri)
            {
                return;
            }

            this.uri = uri;

            if (string.IsNullOrEmpty(uri))
            {
                return;
            }

            string url = getURL(uri);

            if (resource != null)
            {
                resource.release();
                AssetsManager.bindEventHandle(resource, resourceHandle, false);
            }

            resource = AssetsManager.getResource(url, LoaderXDataType.ASSETBUNDLE);
            resource.retain();
            AssetsManager.bindEventHandle(resource, resourceHandle);
            resource.load();
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="url"></param>
        /// <param name="uri"></param>
        /// <param name="type"></param>
        /// <param name="resultHandle">同url只返回一次回调</param>
        /// <returns></returns>
        public AssetResource add(string url, LoaderXDataType type, Action <EventX> resultHandle = null)
        {
            if (isStart)
            {
                DebugX.LogError("Qu不能在运行时加入:" + url);
            }

            AssetResource resource = null;

            if (string.IsNullOrEmpty(url))
            {
                return(resource);
            }

            string key = url.ToLower();

            if (urlMapping.TryGetValue(key, out resource))
            {
                return(resource);
            }
            resource = AssetsManager.getResource(url, type);
            if (resource == null)
            {
                return(null);
            }

            if (isUseRef)
            {
                resource.retain();
            }

            urlMapping.Add(key, resource);
            queue.Enqueue(resource);
            if (resultHandle != null && resultActions.ContainsKey(key) == false)
            {
                resultActions.Add(key, resultHandle);
            }

            return(resource);
        }