Пример #1
0
    // 加载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);
    }
Пример #2
0
    // 声音
    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);
    }
Пример #3
0
    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);
        }
    }
Пример #4
0
    // 加载精灵
    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);
        }
    }
Пример #5
0
    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);
        }
    }
Пример #6
0
    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);
    }
Пример #7
0
 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;
 }
Пример #8
0
    // 加载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);
            }
        }
    }
Пример #10
0
    // 加载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);
            }
        }
    }
Пример #11
0
 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);
 }
Пример #15
0
    // 加载预制
    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);
        }
    }
Пример #16
0
    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);
            }
        }
    }
Пример #18
0
 /// <summary>
 ///  加载材质
 /// </summary>
 /// <param name="MaterialName"></param>
 /// <param name="async"></param>
 /// <param name="pfun"></param>
 public virtual void LoadMaterial(string MaterialName, bool async, AssetLoadHook pfun)
 {
 }
Пример #19
0
 // 加载shader
 public override void LoadShader(string shaderName, bool async, AssetLoadHook pfun)
 {
     LoadObj(ResourcesType.Shader, shaderName, "", typeof(Shader), true, pfun);
 }
Пример #20
0
 // 加载精灵
 public virtual void LoadSprite(string AtlasName, string SpriteName, bool async, AssetLoadHook pfun)
 {
 }
Пример #21
0
 /// <summary>
 /// 音乐
 /// </summary>
 /// <param name="MusicName"></param>
 /// <param name="async"></param>
 /// <param name="pfun"></param>
 public virtual void LoadMusic(string MusicName, bool async, AssetLoadHook pfun)
 {
 }
Пример #22
0
 public override void LoadVoice(string audioName, bool async, AssetLoadHook pfun)
 {
     LoadObj(ResourcesType.Voice, audioName, "", typeof(AudioClip), true, pfun);
 }
Пример #23
0
 // 加载精灵
 public override void LoadSprite(string AtlasName, string SpriteName, bool async, AssetLoadHook pfun)
 {
     LoadObj(ResourcesType.UIAltas, AtlasName, SpriteName, typeof(Sprite), true, pfun);
 }
Пример #24
0
 // 加载预制
 public override void LoadPrefab(string prefabName, string Type, bool IsCahce, bool async, AssetLoadHook pfun)
 {
     LoadObj(Type, prefabName, "", typeof(GameObject), IsCahce, pfun);
 }
Пример #25
0
 /// <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)
 {
 }
Пример #27
0
 // 加载预制
 public virtual void LoadPrefab(string prefabName, string Type, bool IsCahce, bool async, AssetLoadHook pfun)
 {
 }
Пример #28
0
 // 加载资源的回调
 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);
     }
 }
Пример #29
0
 // 加载shader 的接口
 public virtual void LoadShader(string shaderName, bool async, AssetLoadHook pfun)
 {
 }
 public virtual void LoadPngTexture(string texName, bool isCache, AssetLoadHook fun)
 {
 }