private void Awake() { if (_cmCurve == null) { GameObject go = GameObject.Find(ConfigFilename); if (go == null) { #if UNITY_EDITOR go = (GameObject)Resources.Load(ConfigFilename).ExtInstantiate(); #else ResObj resource = ResService.GetResource(ConfigFilename); if (resource != null) { go = (GameObject)resource.Content.ExtInstantiate(); ResService.UnloadResource(resource); } #endif if (null != go) { ExtObject.ExtDontDestroyOnLoad(go); } } if (go != null) { go.name = ConfigFilename; _cmCurve = go.ExtGetComponent <UICurveCfg>(); _cmAudio = go.ExtGetComponent <UIAudioCfg>(); } } _cacheTf = transform; _originalScale = _cacheTf.localScale; }
public byte[] CustomLuaLoader(ref string filepath) { filepath = filepath.Replace('.', '/'); filepath = "LuaScripts/" + filepath + ".lua"; //编辑器 强制走 #if UNITY_EDITOR && !USE_PACK_RES string fullPath = JW.Res.FileUtil.CombinePath(Application.dataPath, "Resources/" + filepath); return(JW.Res.FileUtil.ReadFile(fullPath)); #else ResObj res = ResService.GetResource(filepath); if (res != null && res.Content != null) { BinaryObject binaryObject = res.Content as BinaryObject; byte[] bb = binaryObject.m_data; ResService.UnloadResource(res, false); return(bb); } else { // 有脚本加载失 JW.Common.Log.LogE("Load lua script failed, path:{0}.", filepath); return(null); } #endif }
/// 获取文件内容 public static string GetTextFromFile(string filename) { string text = string.Empty; ResObj res = ResService.GetResource(filename); if (res != null) { BinaryObject binaryObject = res.Content as BinaryObject; byte[] rawBytes = binaryObject.m_data; if (rawBytes != null && rawBytes.Length > 0) { ResService.UnloadResource(res); text = Encoding.UTF8.GetString(rawBytes); } } return(text); }
//------------------------------------------ /// <summary> /// 取资源二进制数据 /// </summary> /// <param name="resPath">资源路径</param> /// <returns>二进制数据</returns> public static byte[] GetResourceBytes(string resPath) { ResObj res = ResService.GetResource(resPath); if (res == null) { return(null); } BinaryObject binaryObject = res.Content as BinaryObject; if (binaryObject == null) { return(null); } byte[] rawBytes = binaryObject.m_data; ResService.UnloadResource(res); return(rawBytes); }
private void Awake() { if (ApplyButtonClickCurve) { GameObject go = GameObject.Find(ConfigFilename); if (go == null) { #if UNITY_EDITOR go = (GameObject)Resources.Load(ConfigFilename).ExtInstantiate(); #else ResObj resource = ResService.GetResource(ConfigFilename); if (resource != null) { go = (GameObject)resource.Content.ExtInstantiate(); ResService.UnloadResource(resource); } #endif if (null != go) { ExtObject.ExtDontDestroyOnLoad(go); } } if (go != null) { go.name = ConfigFilename; UICurveCfg cfg = go.ExtGetComponent <UICurveCfg>(); _curve = cfg.GetCurve("Normal"); } } // if (_curve != null) { Keyframe lastKf = _curve[_curve.length - 1]; _lastKeyTime = lastKf.time; } _cacheTf = transform; _originalScale = _cacheTf.localScale; }
/// <summary> /// 装载 /// </summary> /// <param name="data">资产数据</param> /// <param name="clone">是否Clone一个副本</param> /// <returns>资产</returns> public BaseAsset Load(ref AssetData data, bool clone) { if (string.IsNullOrEmpty(data.Filename)) { JW.Common.Log.LogE("AssetManager.Load : invalid parameter"); return(null); } //缓存找 BaseAsset ba = _cache.GetAsset(data.Name); if (ba != null) { //缓存复制 if (clone) { BaseAsset cloneBa = AssetProcessor.ProcessClone(ba); _cache.AddAsset(ba); ba = cloneBa; } if (ba != null) { if (!AssetProcessor.ProcessCreate(ba)) { JW.Common.Log.LogE("AssetManager.CreateAsset : failed to process create - {0}", data.Name); ba.BaseData.Callback = null; ba.BaseData.Factory = null; ba.Resource = null; data.Factory.DestroyObject(ba); return(null); } _usingAsset.Add(ba); } return(ba); } //没在缓存 同步创建 ResObj resource = ResService.GetResource(data.Filename); if (resource == null) { JW.Common.Log.LogE("AssetManager.Load : failed to load resource - {0}", data.Filename); return(null); } if (resource.Content == null) { JW.Common.Log.LogE("AssetManager.Load : failed to load resource - {0}", data.Filename); ResService.UnloadResource(resource); return(null); } ba = CreateAsset(data, resource); if (ba == null) { ResService.UnloadResource(resource); return(null); } if (clone) { BaseAsset cloneBa = AssetProcessor.ProcessClone(ba); _cache.AddAsset(ba); ba = cloneBa; } if (ba != null) { _usingAsset.Add(ba); } return(ba); }
private IEnumerator AsynchronousLoad_InstantiateResource() { while (true) { int find = 0; for (; find < _resourceRequesting.Count; find++) { if (_resourceRequesting[find].Request != null) { break; } } if (find >= _resourceRequesting.Count) { yield return(InstructionEnd); continue; } LoadData loadData = _resourceRequesting[find]; if (!loadData.Request.isDone) { yield return(null); continue; } _resourceRequesting.RemoveAt(find); if (loadData.Request.resource == null) { JW.Common.Log.LogE("Loader.AsynchronousLoad_InstantiateResource : load failed - {0}", loadData.Data.Name); if (loadData.Data.Callback != null) { loadData.Data.Callback.OnLoadAssetCompleted(loadData.Data.Name, AssetLoadResult.ResourceFail, null); yield return(null); } yield return(InstructionEnd); continue; } if (loadData.Request.resource.Content == null) { JW.Common.Log.LogE("Loader.AsynchronousLoad_InstantiateResource : load failed - {0}", loadData.Data.Name); ResService.UnloadResource(loadData.Request.resource); if (loadData.Data.Callback != null) { loadData.Data.Callback.OnLoadAssetCompleted(loadData.Data.Name, AssetLoadResult.ResourceFail, null); yield return(null); } yield return(InstructionEnd); continue; } if (_assetManager.AddCache(loadData.Data, loadData.Request.resource) == null) { JW.Common.Log.LogE("Loader.AsynchronousLoad_Resource : add cache failed - {0}", loadData.Data.Name); ResService.UnloadResource(loadData.Request.resource); if (loadData.Data.Callback != null) { loadData.Data.Callback.OnLoadAssetCompleted(loadData.Data.Name, AssetLoadResult.ResourceFail, null); yield return(null); } yield return(InstructionEnd); continue; } yield return(null); //个数 if (_assetManager.GetCacheCount(loadData.Data.Name) < loadData.Data.Count) { loadData.Request.resource = ResService.GetResource(loadData.Data.Filename); _resourceRequesting.Insert(find, loadData); yield return(InstructionEnd); continue; } if (loadData.Data.Callback != null) { loadData.Data.Callback.OnLoadAssetCompleted(loadData.Data.Name, AssetLoadResult.Success, null); yield return(null); } yield return(InstructionEnd); } }