• 大小: 4.05KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-28
  • 语言: C#
  • 标签: AB  

资源简介

ab打包

资源截图

代码片段和文件信息


using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Linq;

public class AssetbundlePackat
{
    //把需要热更的Resources资源放入HotUpdate文件夹如果需要默认读取resources/HotUpdate下的资源
    //请不要添加到LevelVersion.xml版本中也不要生成ab包等需要热更修改内容时,再包含进去版本中,并生成ab包
    //注意:不要为了省时间,只打一个需要的ab包,需要整体重新打ab包,因为会生成ab依赖分析包

    static string m_beginPath;
    static string beginPath
    {
        get
        {
            if (string.IsNullOrEmpty(m_beginPath))
            {
                int index = Application.dataPath.LastIndexOf(“Assets“);
                m_beginPath = Application.dataPath.Remove(index);
            }

            return m_beginPath;
        }
    }


    #region 清除AssetBundle包名
    [MenuItem(“HotTools/ClearAbName“)]
    static void ClearABNames()
    {
        //清除旧的ab包名
        EditorUtility.DisplayProgressBar(“搜索ab包名“ “进行中...“ 0.2f);
        string[] abnames = AssetDatabase.GetAllAssetBundleNames();
        for(int i=0;i        {
            EditorUtility.DisplayProgressBar(“清除ab包名“ abnames[i] (i+1f) / abnames.Length);
            AssetDatabase.RemoveAssetBundleName(abnames[i] true);
        }

        EditorUtility.ClearProgressBar();

    }

    #endregion

    #region 设置AssetBundle包名
    const int ReferenceThreshold = 2;//大于阀值设置ab名字,不被包含,而被依赖

    static int objDependencieCount = 0;//依赖计数
    static Dictionary dicAtlasSetAbNameFlag = new Dictionary();//图集设置assetName标识
    static Dictionary> dicObjRelyNum = new Dictionary>();//key=objPath value=依赖列表
    static Dictionary> dicAtlasObjRelyNum = new Dictionary>();//key=packing Tag value=依赖列表



    static void InitSetAssetBundle()
    {
        AssetDatabase.SaveAssets();
        objDependencieCount = 0;
        dicAtlasSetAbNameFlag.Clear();
        dicObjRelyNum.Clear();
        dicAtlasObjRelyNum.Clear();
        dicSpritePackingTagList.Clear();
        GetSpriteListAtPackingTag(Application.dataPath);
    }

    #region packing Tag sprite列表



    static Dictionary> dicSpritePackingTagList = new Dictionary>();//packing Tag sprite列表
    static void GetSpriteListAtPackingTag(string path)
    {
        string[] filePaths = Directory.GetFiles(path);
        List ignoreExtens = new List { ““ “.lua“ “.cs“ “.dll“ “.json“ “.mat“ “.meta“ “.DS_Store“ “.text“ “.xml“ “.prefab“ “.ab“ “.mp4“ “.mp3“ };
        for (int i=0;i        {
            string fp = filePaths[i];

            string exten = Path.GetExtension(fp);
            if (ignoreExtens.Contains(exten)) continue;
            string relativePath = fp.Replace(Application.dataPath “Assets“);

            EditorUtility.DisplayProgressBar(“分析图集Sprite“ relativePat

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      18456  2020-10-19 18:59  AssetbundlePackat.cs

----------- ---------  ---------- -----  ----

                18456                    1


评论

共有 条评论