資源簡介
ab打包
代碼片段和文件信息
using?System.Collections.Generic;
using?UnityEngine;
using?UnityEditor;
using?System.IO;
using?System.Linq;
public?class?AssetbundlePackat
{
????//把需要熱更的Resources資源放入HotUpdate文件夾如果需要默認(rèn)讀取resources/HotUpdate下的資源
????//請不要添加到LevelVersion.xml版本中也不要生成ab包等需要熱更修改內(nèi)容時,再包含進(jìn)去版本中,并生成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包名“?“進(jìn)行中...“?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?設(shè)置AssetBundle包名
????const?int?ReferenceThreshold?=?2;//大于閥值設(shè)置ab名字,不被包含,而被依賴
????static?int?objDependencieCount?=?0;//依賴計數(shù)
????static?Dictionary?dicAtlasSetAbNameFlag?=?new?Dictionary();//圖集設(shè)置assetName標(biāo)識
????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
- 上一篇:C#與正運動控制卡
- 下一篇:百度在線翻譯API (使用)
評論
共有 條評論