巧妙地批量修改unity本地文件的参数
2016-09-02 17:35
267 查看
项目中有几百个音频文件,需要设置音频文件的格式,但Unity这块还不支持批量选中操作,一个一个修改太费劲
参考了http://www.manew.com/thread-46098-1-1.html
又找到了这个http://jingyan.baidu.com/article/48a42057c190d4a924250484.html
因为我发现这些信息是记录在.meta文件里的,只要修改meta文件就可以达到我想要的效果。于是就变成了批量修改多个文本中的字符串=。=
参考了http://www.manew.com/thread-46098-1-1.html
using UnityEngine; using UnityEditor; public class ChangeAudioClip { [MenuItem ("Crusade Tools/AudioClip")] public static void CreatTool() { EditorWindow.GetWindow<AudioClip_Tool>(false ,"AudioClip_Tool",true).Show (); } } public class AudioClip_Tool:EditorWindow { void OnGUI() { GUILayout.Space(20); GUILayout.BeginHorizontal(); if(GUILayout.Button("Force To Mono - False", GUILayout.Width(150))) { SelectedChangeAudioFomat(false); } if(GUILayout.Button("Force To Mono - True", GUILayout.Width(150))) { SelectedChangeAudioFomat(true); } GUILayout.EndHorizontal(); GUILayout.Space(20); GUILayout.BeginHorizontal(); if(GUILayout.Button("LoadType - DecompressOnLoad", GUILayout.Width(150))) { SelectedChangeAudioTyle(AudioClipLoadType.DecompressOnLoad); } if(GUILayout.Button("LoadType - CompressedInMemory", GUILayout.Width(150))) { SelectedChangeAudioTyle(AudioClipLoadType.CompressedInMemory); } if(GUILayout.Button("LoadType - Streaming", GUILayout.Width(150))) { SelectedChangeAudioTyle(AudioClipLoadType.Streaming); } GUILayout.EndHorizontal(); } void OnInspectorUpdate() { this.Repaint(); } static void SelectedChangeAudioTyle(AudioClipLoadType ac) { Object[] audios = GetSelectedAudioClip(); Selection.objects = new Object[0]; foreach (AudioClip audioClips in audios) { string path = AssetDatabase.GetAssetPath(audioClips); AudioImporter audioImporter = AudioImporter.GetAtPath(path) as AudioImporter; AudioImporterSampleSettings ais=audioImporter.defaultSampleSettings; ais.loadType=ac; audioImporter.defaultSampleSettings=ais; AssetDatabase.ImportAsset(path); } } static void SelectedChangeAudioFomat(bool newFormat) { Object[] audios = GetSelectedAudioClip(); Selection.objects = new Object[0]; foreach (AudioClip audioClips in audios) { string path = AssetDatabase.GetAssetPath(audioClips); AudioImporter audioImporter = AudioImporter.GetAtPath(path) as AudioImporter; audioImporter.forceToMono = newFormat; AssetDatabase.ImportAsset(path); } } static Object[] GetSelectedAudioClip() { return Selection.GetFiltered(typeof(AudioClip), SelectionMode.DeepAssets); } }这在5.4中是没问题的,但是在4.6就会报错,而且二个版本的界面都不一样。这样就只能寻找其他的解决方法:
又找到了这个http://jingyan.baidu.com/article/48a42057c190d4a924250484.html
因为我发现这些信息是记录在.meta文件里的,只要修改meta文件就可以达到我想要的效果。于是就变成了批量修改多个文本中的字符串=。=
相关文章推荐
- 本地文件的批量创建,修改工具类
- Fiddler:如何读取本地文件修改Request参数
- 让XP HOME使用组策略、本地用户和组、安全策略以及文件访问权限的修改
- 用vc++重写的文件扩展名批量修改工具(改进了一下)
- 修改linux启动参数挽回/etc/inittab文件
- 批量修改漫游配置文件路径
- 文件的属性的批量修改 attrib
- 将本地文件中数据批量导入到远程数据库中
- php带密码功能并下载远程文件保存本地指定目录 修改加强版
- 如何批量修改文件的扩展名
- Windows脚本系列之三——使用脚本批量修改本地管理员密码
- PHP chmod 函数与批量修改文件目录权限
- 批量修改文件(备忘)
- 批量修改文件内容
- Freebsd下 批量修改dos格式文件为unix格式 并删除空行
- 批量修改多个文件内容的脚本
- cvs update -r 命令有修改本地文件大小写的严重BUG
- 如何修改boot.ini文件的pae|awe|3gb参数
- 批量修改文件的编码格式
- 批量修改文件内容