Unity本身的资源包导出工具就是个悲剧。导出的东西经常把无关的东西“依赖”进来,比如我导出一个预制体,它能把所有代码都“依赖”进来。
第一步
在Assets下新建一个C#脚本,名称随意。
第二步
复制如下代码到脚本中,保存。
using UnityEditor;
class AssetsMenu
{
[MenuItem("Assets/导出Unity资源包", true)]
static bool ExportPackageValidation()
{
for (var i = 0; i < Selection.objects.Length; i++)
{
if (AssetDatabase.GetAssetPath(Selection.objects[i]) != "")
return true;
}
return false;
}
[MenuItem("Assets/导出Unity资源包")]
static void ExportPackage()
{
var path = EditorUtility.SaveFilePanel("Save unitypackage", "", "", "unitypackage");
if (path == "")
return;
var assetPathNames = new string[Selection.objects.Length];
for (var i = 0; i < assetPathNames.Length; i++)
{
assetPathNames[i] = AssetDatabase.GetAssetPath(Selection.objects[i]);
}
assetPathNames = AssetDatabase.GetDependencies(assetPathNames);
AssetDatabase.ExportPackage(assetPathNames, path, ExportPackageOptions.Interactive | ExportPackageOptions.Recurse | ExportPackageOptions.IncludeDependencies);
}
}
第三步
将当前脚本保存,右键点击<导出Unity资源包>,导出包。
附录
引用自 Unity资源包一键导出
回复:
墨白墨白 (2018.03.02 15:22):
很好用,但是不足的地方在于,不能导出静态类…
731315163 (2018.02.18 21:38):
mono脚本里依赖的静态类打包不进来,这得做源码分析,这就有点复杂了,,,