Unity中将目录中资源打包Assetbundle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string scenePath = Application.dataPath + "/Scenes";
DirectoryInfo dir = new DirectoryInfo (scenePath);
List<FileInfo> fileInfos = DirSearch (dir,"*.unity");
string splitString = "Assets/";
foreach (FileInfo fileInfo in fileInfos) {
string fullName = fileInfo.FullName;
fullName = fullName.Substring (fullName.LastIndexOf (splitString) );
string fileName = Path.GetFileNameWithoutExtension (fileInfo.FullName);
AssetImporter importer = AssetImporter.GetAtPath(fullName);
if (Libs.Config.AssetBundleExcludeScenes.Contains (fileName)) {
importer.assetBundleName = "";
} else {
importer.assetBundleName = fileName;
}
importer.SaveAndReimport ();
}
1
2
3
4
5
6
7
8
9
private static List<FileInfo> DirSearch(DirectoryInfo d, string searchFor)
{
List<FileInfo> founditems = d.GetFiles(searchFor).ToList();
// Add (by recursing) subdirectory items.
DirectoryInfo[] dis = d.GetDirectories();
foreach (DirectoryInfo di in dis)
founditems.AddRange(DirSearch(di, searchFor));
return (founditems);
}