// 加载shader 的接口 public override void LoadShader(string shaderName, bool async, AssetLoadHook pfun) { string shaderkey = ResourcesPath.GetAssetResourceRunPath(ResourcesType.Shader, ResourcesPathMode.Editor) + shaderName + ".shader"; shaderkey = shaderkey.ToLower(); LoadObj(ResourcesType.Shader, "shader", shaderkey, typeof(Shader), true, true, false, async, pfun); }
// 声音 public override void LoadAudio(string audioName, bool async, AssetLoadHook pfun) { string[] names = audioName.Split('/'); string fileName = names[names.Length - 1].ToLower(); LoadObj(ResourcesType.Audio, audioName, fileName, typeof(AudioClip), true, true, false, async, pfun); }
public override void LoadVoice(string audioName, bool async, AssetLoadHook pfun) { //LoadObj(ResourcesType.Audio, audioName.ToLower(), audioName.ToLower(), typeof(AudioClip), true, true, false, async,pfun) ; string RelativePath = ResourcesPath.GetRelativePath(ResourcesType.Voice, ResourcesPathMode.AssetBundle); AudioClip go = Resources.Load <AudioClip>(RelativePath + audioName) as AudioClip; if (pfun != null) { pfun(go); } }
// 加载精灵 public override void LoadSprite(string AtlasName, string SpriteName, bool async, AssetLoadHook pfun) { //LoadObj(ResourcesType.UIAltas, AtlasName.ToLower(), SpriteName.ToLower(), typeof(Sprite), true, true, false, async,pfun); string RelativePath = ResourcesPath.GetRelativePath(ResourcesType.UIAltas, ResourcesPathMode.AssetBundle); Sprite go = Resources.Load <Sprite>(RelativePath + AtlasName + "/" + SpriteName) as Sprite; if (pfun != null) { pfun(go); } }
public override void LoadMaterial(string MaterialName, bool async, AssetLoadHook pfun) { // LoadObj(ResourcesType.Material, MaterialName, "", typeof(Material), true, pfun); string RelativePath = ResourcesPath.GetRelativePath(ResourcesType.Material, ResourcesPathMode.AssetBundle); Material go = Resources.Load <Material>(RelativePath + MaterialName) as Material; if (pfun != null) { pfun(go); } }
public static void AddLoadTask(string ABRelativePath, string ObjName, System.Type type, bool IsCacheAsset, bool IsCacheAB, bool IsFreeUnUseABRes, AssetLoadHook pfun) { LoadTask info = new LoadTask(ABRelativePath, ObjName, type, IsCacheAsset, IsCacheAB, IsFreeUnUseABRes, pfun); AddLoadQueue(info); }
public LoadTask(string ABRelativePath, string ObjName, System.Type type, bool IsCacheAsset, bool IsCacheAB, bool IsFreeUnUseABRes, AssetLoadHook pfun) { m_ABRelativePath = ABRelativePath; m_ObjName = ObjName; m_type = type; m_IsCacheAsset = IsCacheAsset; m_IsCacheAB = IsCacheAB; m_IsFreeUnUseABRes = IsFreeUnUseABRes; m_fun = pfun; }
// 加载asset接口 private void LoadObj(string ResType, string ObjName, string subName, System.Type type, bool IsCahce, AssetLoadHook pfun) { UnityEngine.Object obj = null; string FileExt = ""; if (subName == "") { FileExt = ResourcesPath.GetFileExt(ResType); } else { FileExt = "/" + subName + ResourcesPath.GetFileExt(ResType); } string key = GetKey(ResType, ObjName, FileExt); obj = FindAssetObj(key); if (obj != null) { if (pfun != null) { pfun(obj); } } else { string PathName = "Assets/" + ResourcesPath.GetRelativePath(ResType, ResourcesPathMode.Editor) + ObjName + FileExt; obj = AssetDatabase.LoadAssetAtPath(PathName, type); if (obj != null && IsCahce == true) { AddCache(key, obj); } else if (null == obj) { UnityEngine.Debug.Log("LoadAssetAtPahth Empty : " + PathName + " Type : " + type); } if (pfun != null) { pfun(obj); } } }
// 加载asset接口 private void LoadObj(string resType, string objName, string subName, System.Type type, bool isCahce, AssetLoadHook pfun) { string fileExt; if (subName == "") { fileExt = ResourcesPath.GetFileExt(resType); } else { fileExt = "/" + subName + ResourcesPath.GetFileExt(resType); } string key = GetKey(resType, objName, fileExt); Object obj = FindAssetObj(key); if (obj != null) { if (pfun != null) { pfun(obj); } } else { string pathName = "Assets/" + ResourcesPath.GetRelativePath(resType, ResourcesPathMode.Editor) + objName + fileExt; obj = AssetDatabase.LoadAssetAtPath(pathName, type); if (obj != null && isCahce == true) { AddCache(key, obj); } else if (null == obj) { Debug.Log("LoadAssetAtPahth Empty : " + pathName + " Type : " + type); } if (pfun != null) { pfun(obj); } } }
// 加载asset接口 private void LoadObj(string ResType, string ABName, string ObjName, Type type, bool IsCacheAsset, bool IsCacheAB, bool IsFreeUnUseABRes, bool async, AssetLoadHook pfun) { string RelativePath = ABLoad.GetRelativePath(ResType, ABName); string key = GetKey(RelativePath, ObjName); UnityEngine.Object obj = FindAssetObj(key); if (obj != null) { if (pfun != null) { pfun(obj); } } else { if (async == false) { ABLoad.LoadAB(RelativePath, IsCacheAB, (ab) => { Object g = LoadObjByAb(ab, ObjName, type, IsCacheAB, IsFreeUnUseABRes); LoadAssetCallBack(g, key, IsCacheAsset, pfun); }); } else { // 异步加载队列 LoadQueue.AddLoadTask(RelativePath, ObjName, type, IsCacheAsset, IsCacheAB, IsFreeUnUseABRes, pfun); } } }
public override void LoadMaterial(string MaterialName, bool async, AssetLoadHook pfun) { LoadObj(ResourcesType.Material, MaterialName, "", typeof(Material), true, pfun); }
public override void loadBuildingTexture(string TextureName, bool IsCahce, AssetLoadHook pfun) { LoadObj(ResourcesType.BuildingTexture, TextureName, "", typeof(Texture), IsCahce, pfun); }
// 加载英雄动画 public override void LoadHeroAnim(string HeroName, string ClipName, bool async, AssetLoadHook pfun) { LoadObj(ResourcesType.HeroAnim, HeroName, ClipName, typeof(AnimationClip), true, pfun); }
public override void LoadPngTexture(string texName, bool isCache, AssetLoadHook fun) { LoadObj(ResourcesType.PngTexture, texName, "", typeof(Texture), isCache, fun); }
// 加载预制 public override void LoadPrefab(string prefabName, string Type, bool IsCahce, bool async, AssetLoadHook pfun) { string objName = prefabName.ToLower(); /*if (IsCahce == true) { * LoadObj(Type, prefabName, objName, typeof(GameObject), true, true, false, async, pfun); * } else { * LoadObj(Type, prefabName, objName, typeof(GameObject), false, false, true, async, pfun); * }*/ string RelativePath = ResourcesPath.GetRelativePath(Type, ResourcesPathMode.AssetBundle); GameObject go = Resources.Load <GameObject>(RelativePath + prefabName) as GameObject; if (pfun != null) { pfun(go); } }
public IEnumerator LoadObjAsync(AssetBundle AB, string objName, System.Type type, bool IsCache, bool IsFreeUnUseABRes, AssetLoadHook pfun) { if (AB != null) { AssetBundleRequest quest = AB.LoadAssetAsync(objName, type); yield return(quest); if (pfun != null) { pfun(quest.asset); } if (IsFreeUnUseABRes == true && IsCache == false) { AB.Unload(false); } } else { if (pfun != null) { pfun(null); } } }
public override void LoadSoldierAnim(string meshName, string animName, bool isCache, AssetLoadHook pfun) { if (null == pfun) { return; } string FileExt = ResourcesPath.GetFileExt(ResourcesType.ActorSoldierMesh); string key = GetKey(ResourcesType.ActorSoldierMesh, meshName + "/" + animName, FileExt); Object obj = FindAssetObj(key); if (null != obj) { pfun.Invoke(obj); } else { string PathName = "Assets/" + ResourcesPath.GetRelativePath(ResourcesType.ActorSoldierMesh, ResourcesPathMode.Editor) + meshName + "/" + animName + FileExt; Texture2D ta = AssetDatabase.LoadAssetAtPath <Texture2D>(PathName) as Texture2D; if (null != ta) { if (isCache) { AddCache(key, ta); } pfun.Invoke(ta); } else { Debug.Log("LoadAssetAtPath Empty : " + key); } } }
/// <summary> /// 加载材质 /// </summary> /// <param name="MaterialName"></param> /// <param name="async"></param> /// <param name="pfun"></param> public virtual void LoadMaterial(string MaterialName, bool async, AssetLoadHook pfun) { }
// 加载shader public override void LoadShader(string shaderName, bool async, AssetLoadHook pfun) { LoadObj(ResourcesType.Shader, shaderName, "", typeof(Shader), true, pfun); }
// 加载精灵 public virtual void LoadSprite(string AtlasName, string SpriteName, bool async, AssetLoadHook pfun) { }
/// <summary> /// 音乐 /// </summary> /// <param name="MusicName"></param> /// <param name="async"></param> /// <param name="pfun"></param> public virtual void LoadMusic(string MusicName, bool async, AssetLoadHook pfun) { }
public override void LoadVoice(string audioName, bool async, AssetLoadHook pfun) { LoadObj(ResourcesType.Voice, audioName, "", typeof(AudioClip), true, pfun); }
// 加载精灵 public override void LoadSprite(string AtlasName, string SpriteName, bool async, AssetLoadHook pfun) { LoadObj(ResourcesType.UIAltas, AtlasName, SpriteName, typeof(Sprite), true, pfun); }
// 加载预制 public override void LoadPrefab(string prefabName, string Type, bool IsCahce, bool async, AssetLoadHook pfun) { LoadObj(Type, prefabName, "", typeof(GameObject), IsCahce, pfun); }
/// <summary> /// 加载音效 /// </summary> /// <param name="VoiceName"></param> /// <param name="async"></param> /// <param name="pfun"></param> public virtual void LoadVoice(string VoiceName, bool async, AssetLoadHook pfun) { }
public virtual void loadBuildingTexture(string TextureName, bool IsCahce, AssetLoadHook pfun) { }
// 加载预制 public virtual void LoadPrefab(string prefabName, string Type, bool IsCahce, bool async, AssetLoadHook pfun) { }
// 加载资源的回调 public void LoadAssetCallBack(UnityEngine.Object obj, string key, bool IsCacheAsset, AssetLoadHook pfun) { if (IsCacheAsset == true && obj != null) { AddCache(key, obj); } if (pfun != null) { pfun(obj); } }
// 加载shader 的接口 public virtual void LoadShader(string shaderName, bool async, AssetLoadHook pfun) { }
public virtual void LoadPngTexture(string texName, bool isCache, AssetLoadHook fun) { }