public void SetAsset(System.Type type, string assetName, DelegateObjectLoaded onLoaded, object param) { this.type = type; this.assetName = assetName; this.onObjectLoaded = onLoaded; this.param = param; }
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); }
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); } }
/// <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); } }
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 { } }
/// <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); }