如何将unity的project中的特定文件打包
来源:互联网 发布:网络服务器机柜 品牌 编辑:程序博客网 时间:2024/04/28 16:30
如何将unity的project中的特定文件打包
声明一下,本小白第一次写博客,不足之处,还望包含,有错误请指出,感激不尽.
有时候我们得到一个游戏项目,里面有很多丰富的资源.有时候我们想要这个工程里面的所有音频文件,一个一个找是不是太麻烦(可是如果原项目已经分类整理Ok了,那就不必如此大动干戈)
直接上代码,应该能看的懂
using UnityEngine;using System.Collections;using UnityEditor;using System.IO;using System.Collections.Generic;public class Bundle { [MenuItem("Tools/SaveAudioClip")] static void SavePos() { //--保存路径(可以自定义路径) string outpath = @"C:\Users\Username\Desktop\MyAudio\"; //物体列表 List<Object> objList = new List<Object>(); //--获取当前工程下的文件所有文件路径 string[] paths = Directory.GetFiles("Assets","*.*",SearchOption.AllDirectories); foreach (var path in paths) { //--剔除meta文件 if (Path.GetExtension(path) != null && Path.GetExtension(path) != ".meta") { Object obj=AssetDatabase.LoadAssetAtPath<Object>(path); objList.Add(obj); } } //创建文件夹 if (!File.Exists(outpath)) Directory.CreateDirectory(outpath); List<string> audiopath = new List<string>(); //--遍历所有的物体对象 foreach (var item in objList) { //--如果是音频文件 if (item is AudioClip) { string itemPath = AssetDatabase.GetAssetPath(item); string extension= Path.GetExtension(itemPath); audiopath.Add(AssetDatabase.GetAssetPath(item)); //--第一种方法 //AssetDatabase.ExportPackage(itemPath, outpath + item.name + extension); //第二种方法:利用流文件完成导出 CopyFile(itemPath, outpath + item.name); } } //第三种方法:把整个打包成unitypackage文件 AssetDatabase.ExportPackage(audiopath.ToArray(),outpath+"name"+".unitypackage",ExportPackageOptions.Default); Debug.Log("完成打包"); } /// <summary> /// 复制文件到新的目录 /// </summary> /// <param name="soucre">原文件</param> /// <param name="target">目标文件</param> static void CopyFile(string soucre, string target) { //1、读取的流 using (FileStream fsRead = new FileStream(soucre, FileMode.Open, FileAccess.Read)) { //2、写入的流 using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)) { //--指定读取大小 byte[] buffer = new byte[1024 * 1024]; while (true) { int r = fsRead.Read(buffer, 0, buffer.Length); if (r == 0) break; fsWrite.Write(buffer, 0, r); } } } }}
第一种是unity自带的打包方式,如果打包prefab文件,可以将ExportPackageOptions选择成IncludeDependencies形式(防止流失脚本什么的)^_^
第二种是利用文件流读取
第三种是将所有的特定资源打包成unitypackage文件
ps:提醒一点的是如果打包的目标文件是当前unity工程,那么可能就不是音频文件哦,是因为木有生成meta文件的缘故吧.............TnT..
这篇本人只是对音频文件做了打包,如果有兴趣,看官可以试试将其他的文件打包(例如什么视频,prefab等等);
第一次写博客,对于unity也是懵懵懂懂的状态,但是我觉得有些东西应该分享,这样于你于我,都能快速学习.是吧?
1 0
- 如何将unity的project中的特定文件打包
- 如何将Unity中的脚本文件转为dll文件
- 如何将Unity中的脚本文件转为dll文件
- 如何将Unity中的脚本文件转为dll文件
- 如何将Unity中的脚本文件转为dll文件
- 如何将Unity中的脚本文件转为dll文件
- 如何将Unity工程打包成apk
- Unity调用Android打包的Jar文件中的函数
- 使用Installshield Limited Edition Project 将文件打包成 "exe" 格式的安装包
- C++如何修改文件中的特定行
- find命令查找特定文件,并通过-exec 选项将其按照原来的目录树打包成压缩文件
- 如何将Qt的Project文件转成Visual Studio的vcproj文件并保持数据一致性
- 如何将程序打包成.jar文件
- 如何将.so文件打包到.APK
- 如何将.so文件打包到.APK
- 如何将web打包成jar文件
- 如何将资源打包成.unity3d文件
- 如何将Java项目打包成批处理文件
- EventBus使用
- Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse
- 活动的生存周期
- UITableViewCell的选中时的颜色设置
- Go语言核心之美-必读
- 如何将unity的project中的特定文件打包
- 排序
- Connect中间件——重写URL
- 百度地图、高德地图的数据从哪里得到的?
- js图片预览插件
- 华为面试题二
- maven学习笔记
- iOS 隐藏状态栏(时间栏,电池栏)
- 几个位运算