/// <summary> /// 装载具体窗口对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="life">生命周期</param> /// <returns>对象</returns> public UIFormAsset LoadFormAsset <T>(int life = LifeType.Immediate) where T : UIFormAsset, new() { //创建 T instance = new T(); Type t = typeof(T); AssetData data; data.Priority = LoadPriority.Wait; data.Callback = null; data.Type = AssetType.UIForm; data.Name = t.Name; data.Filename = instance.GetPath(); data.Factory = AssetClassFactory.GetUIFormAssetClassFactory(instance); data.Life = life; data.StateName = string.Empty; data.Count = 1; // BaseAsset ba = _assetManager.Load(ref data, false); if (ba == null) { JW.Common.Log.LogE("AssetService.LoadAsset : failed to load asset - {0}", t.Name); return(null); } // AdjustAssetLife(ba, life); return((UIFormAsset)ba); }
private void AddLoad(int loadPriority, IAssetLoadCallback callback, int type, string filename, int life, string stateName, int count) { if (string.IsNullOrEmpty(filename) || count < 1) { JW.Common.Log.LogE("AssetService.AddLoad : invalid parameter"); return; } if (_loader == null) { return; } AssetData data = new AssetData(); data.Priority = loadPriority; data.Callback = callback; data.Type = type; data.Name = filename; //data.Filename = todo Lod data.Filename = filename; data.Factory = AssetClassFactory.GetFactory(type); data.Life = life; data.StateName = stateName; data.Count = count; _loader.AddTask(ref data); }
/// 加载 private BaseAsset LoadAsset(int type, string filename, int life, bool clone = false) { AssetData data; data.Priority = LoadPriority.Wait; data.Callback = null; data.Type = type; data.Name = filename; //data.Filename = todo Lod FileName data.Filename = filename; data.Factory = AssetClassFactory.GetFactory(type); data.Life = life; data.StateName = GetLifeStateName(life); data.Count = 1; BaseAsset ba = _assetManager.Load(ref data, clone); if (ba == null) { JW.Common.Log.LogE("AssetService.LoadAsset : failed to load asset - {0}", data.Filename); return(null); } if (ba.BaseData.Type != type) { JW.Common.Log.LogE("AssetService.LoadAsset : type mismatch - {0}, type - {1};{2}", data.Filename, ba.BaseData.Type, type); Unload(ba); return(null); } AdjustAssetLife(ba, life); return(ba); }