巧妙地批量修改unity本地文件的参数
来源:互联网 发布:java spring框架 实例 编辑:程序博客网 时间:2024/05/18 15:27
项目中有几百个音频文件,需要设置音频文件的格式,但Unity这块还不支持批量选中操作,一个一个修改太费劲
参考了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文件就可以达到我想要的效果。于是就变成了批量修改多个文本中的字符串=。=
0 0
- 巧妙地批量修改unity本地文件的参数
- 本地文件的批量创建,修改工具类
- Unity 本地文件储存(无本地文件显示 防止玩家修改数据)
- 场景参数批量修改
- Fiddler:如何读取本地文件修改Request参数
- 批量修改unity的Asset下资源的文件名
- unity 批量修改预制体
- git 忽略本地文件的修改
- MySQL Jdbc驱动的rewriteBatchedStatements参数--批量修改开关
- 巧妙地sql
- Unity 控制面板transform3个参数的获得和修改
- Unity中动态修改游戏中任意参数的框架
- Linux下巧妙地构建DHCP服务器的妙招!!!
- [python]利用将要睡眠的时间巧妙地定时运行
- Linux下巧妙地构建DHCP服务器的妙招!!!
- 巧妙地解决Log4j文件重命名失败的问题
- 如何更加巧妙地解决所面对的问题
- 一个巧妙地方式改变input的默认样式
- 移植u-boot学习笔记1-----实验及分析启动过程之概述
- H.264句法和语法总结(七)加权预测句法
- 前端工程师手册
- 51Nod1019 求逆序数(归并排序)
- Android图片保存在本地相册
- 巧妙地批量修改unity本地文件的参数
- 整合Kafka到Spark Streaming——代码示例和挑战
- H.264句法和语法总结(八)参考图像序列标记 (marking)操作的语义
- GCD
- GCD编程网络编程API
- 揭秘5G网络的背后:SDN将是关键技术!
- 面试题之两个栈实现一个队列,乘机数组问题
- 诗两首------重庆项目出差有感
- 使用SignalR实时推送数据库变化--车辆实时跟踪