Exemple #1
0
 public void SetAsset(System.Type type, string assetName, DelegateObjectLoaded onLoaded, object param)
 {
     this.type           = type;
     this.assetName      = assetName;
     this.onObjectLoaded = onLoaded;
     this.param          = param;
 }
Exemple #2
0
    static int LoadAsync(ILuaState lua)
    {
        object obj                    = lua.ToUserData(1);
        string path                   = lua.ChkString(2);
        bool   allowUnload            = lua.ToBoolean(3);
        var    funcRef                = lua.ToLuaFunction(4);
        object param                  = lua.ToAnyObject(5);
        DelegateObjectLoaded onLoaded = null;

        if (funcRef != null)
        {
            onLoaded = (o, p) => {
                funcRef.Invoke(o, p);
                funcRef.Dispose();
                var disposer = p as System.IDisposable;
                if (disposer != null)
                {
                    disposer.Dispose();
                }
            };
        }
        System.Type type = obj as System.Type;
        AssetsMgr.A.LoadAsync(type, path, allowUnload, onLoaded, param);
        return(0);
    }
Exemple #3
0
        public void Load(string path, DelegateObjectLoaded onLoaded = null, object param = null)
        {
            var loadedCfg = OnSpriteLoaded + onLoaded;

            if (string.IsNullOrEmpty(path) || path.EndsWith("/"))
            {
                loadedCfg.Invoke(null, param);
            }
            else
            {
                AssetsMgr.A.LoadAsync(typeof(Sprite), path, true, loadedCfg, param);
            }
        }
Exemple #4
0
 /// <summary>
 /// 从某个位置加载某个类型的资源(异步)
 /// </summary>
 public void LoadAsync(System.Type type, string path, bool allowUnload, DelegateObjectLoaded onObjectLoaded, object param)
 {
     if (string.IsNullOrEmpty(path))
     {
         var task = m_TaskPool.Get();
         task.SetAsset(type, path, onObjectLoaded, param);
         ScheduleTask(task);
     }
     else
     {
         string assetbundleName, assetName;
         GetAssetpath(path, out assetbundleName, out assetName);
         var task = m_TaskPool.Get();
         task.SetBundle(assetbundleName, allowUnload, null, false);
         task.SetAsset(type, assetName, onObjectLoaded, param);
         ScheduleTask(task);
     }
 }
Exemple #5
0
        public void Load(string path, DelegateObjectLoaded onLoaded = null, object param = null, bool fromAseetBundle = true)
        {
            var loadedCfg = OnTextureLoaded + onLoaded;

            if (fromAseetBundle)
            {
                if (string.IsNullOrEmpty(path) || path.EndsWith("/"))
                {
                    loadedCfg.Invoke(null, param);
                }
                else
                {
                    AssetsMgr.A.LoadAsync(typeof(Texture), path, true, loadedCfg, param);
                }
            }
            else
            {
            }
        }
Exemple #6
0
 /// <summary>
 /// 异步加载一个资源
 /// </summary>
 /// <param name="type">资源类型</param>
 /// <param name="path">路径:AssetBundle/ObjectName</param>
 /// <param name="onLoaded">加载结束后做啥</param>
 public void LoadAsync(System.Type type, string path, bool allowUnload, DelegateObjectLoaded onLoaded = null, System.Object param = null)
 {
     Loader.LoadAsync(type, path, allowUnload, onLoaded, param);
 }