使用脚本将Unity的ogg音效全部改为2d音效
来源:互联网 发布:梁咏琪 知乎 编辑:程序博客网 时间:2024/05/17 06:54
[MenuItem("将所有3D音效改成2D音效")]static void change3DMusicTo2D(){string[] fs = GetSoundMetaFile();bool hasChangeFile = false;foreach(var f in fs){if(MakeSoundMetaFile3DFalse(f)){hasChangeFile = true;}}if(hasChangeFile)AssetDatabase.Refresh();}static string[] GetSoundMetaFile(){string dir = Application.dataPath + "/Resources/Res/Audio/";return System.IO.Directory.GetFiles(dir,"*.ogg.meta",System.IO.SearchOption.AllDirectories);}static bool MakeSoundMetaFile3DFalse(string file){var text = System.IO.File.ReadAllText(file);int pos = text.IndexOf("3D: 1");if(pos > 0){text = text.Replace("3D: 1","3D: 0");System.IO.File.WriteAllText(file,text);Debug.Log(string.Format("Sound File Make 3D False:{0}",file);return true;}return false;}
注:
如果你在游戏开发过程中使用诸如SVN的版本控制工具,那你必须得理解Meta文件的作用。在游戏场景中引用一个游戏资源,Unity并不直接按照文件路径和名称,而是使用一个独一无二的GUID来指向工程里的该资源文件。这个GUID储存在Unity工程为每个资源和文件夹生成的Meta文件里。
使用GUID的好处就是,即使你移动、重命名或者修改资源的内容,这个资源仍然可以通过GUID来被引用(只要GUID不变,资源就能够被引用)。缺点是你必须明确的意识到Meta文件是被关联到特定的资源上的,如果你删除了一个meta文件,Unity会认为原始的资源文件已经被删除,然后为这个“新的”资源文件生成一个新的GUID。这就是游戏场景中的资源引用中断的最常见原因。
除了GUID,meta文件还存储了有关资源导入的信息。例如,贴图资源在导入时可以当作标准贴图、法线贴图、GUI贴图、cookie或者光线贴图。这些导入设置都会被存储在meta文件里。
之前遇到一个问题,就是我上传到SVN的怪物Prefab,在策划那边查看出现“Missing Script”的问题,经检查,是该丢失的脚本的meta文件没有上传到SVN。所以,按照上面的理论,因而Prefab找不到该脚本的引用。
0 0
- 使用脚本将Unity的ogg音效全部改为2d音效
- Unity音效
- Unity 2D教程: 滚动,场景和音效
- Unity 简单的音效管理器
- 音效
- 音效
- UNITY中FMOD音效插件使用
- cocos2d 音效的添加,使用
- Unity添加音效与音效衰减
- unity音效audio
- Unity 音效管理
- 3D音效
- 3D音效-HRTF
- Unity3D中Video Player的使用及3D音效的设置
- Android SoundPool即时音效的使用Demo
- 实用知识:音效播放的方法使用
- iOS开发 AudioServices(音效播放)的使用
- 关于Unity音乐音效管理
- CodeForces621A Wet Shark and Oddand Even
- 设计模式之适配器模式
- 软件测试自学
- HDU 5688
- 如何解决myeclise10导入项目后.java文件出现中文乱码?
- 使用脚本将Unity的ogg音效全部改为2d音效
- C语言终极面试宝典
- Android四大组件(1.5)--Activity的跳转与传值
- ue4打包失败
- CTF学习建议
- 113. Path Sum II
- AndroidManifest详解
- vertica-备份的恢复
- 【BZOJ2301】problem b,数论之莫比乌斯反演