예제 #1
0
    /// <summary>
    /// 加载资源,优先保证从AB包里面(Resources文件夹外部),其次是通过C#IO流加
    /// 载(Resources文件夹外部),最后通过Resources加载((Resources文件夹内存)).
    /// </summary>
    /// <param name="resourceBase">资源基本数据</param>
    private void LoadResource(ResourceBase resourceBase)
    {
        ResourcePackerInfo resourceBelongedPackerInfo = GetResourceBelongedPackerInfo(resourceBase);

        if (resourceBelongedPackerInfo != null)
        {
            if (resourceBelongedPackerInfo.isAssetBundle)
            {
                if (!resourceBelongedPackerInfo.IsAssetBundleLoaded())
                {
                    resourceBelongedPackerInfo.LoadAssetBundle(FileManager.GetIFSExtractPath());
                }

                resourceBase.LoadFromAssetBundle(resourceBelongedPackerInfo);
                if (resourceBase.unloadBelongedAssetBundleAfterLoaded)
                {
                    resourceBelongedPackerInfo.UnloadAssetBundle(false);
                }
            }
            else
            {
                resourceBase.Load(FileManager.GetIFSExtractPath());
            }
        }
        else
        {
            resourceBase.Load();
        }
    }
예제 #2
0
    public void UnloadBelongedAssetbundle(string fullPathInResources)
    {
        ResourcePackerInfo resourceBelongedPackerInfo = GetResourceBelongedPackerInfo(fullPathInResources);

        if (resourceBelongedPackerInfo != null && resourceBelongedPackerInfo.IsAssetBundleLoaded())
        {
            resourceBelongedPackerInfo.UnloadAssetBundle(false);
        }
    }
예제 #3
0
 private void UnloadAllAssetBundles()
 {
     if (m_resourcePackerInfoSet == null)
     {
         return;
     }
     for (int i = 0; i < m_resourcePackerInfoSet.resourcePackerInfosAll.Count; i++)
     {
         ResourcePackerInfo resourcePackerInfo = m_resourcePackerInfoSet.resourcePackerInfosAll[i];
         if (resourcePackerInfo.IsAssetBundleLoaded())
         {
             resourcePackerInfo.UnloadAssetBundle(false);
         }
     }
 }