AudioToolKit的简单介绍及教程

(2013-02-21 09:29:18)

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院

 
                          AudioToolKit
 
AudioToolKit是一款比较方便的音频管理插件,本文提供介绍和使用方法讲解,不提供插件。该插件全部由代码组成,附带demo. 
AudioToolKit并不是一款没有它你就做不了的插件,它主要是省些代码及可视化管理。
优点:
(1)通过Category管理音频,不需要为音频管理另外写专门脚本。
(2)Pitch并不是按Unity自带的AudioSource里的pitch speed,而是按音乐里的半音程来设置,更实用些。
 
【配置】
(1)创建一个GameObject并命名为AudioController,并添加 插件的AudioController脚本。
(2)指定AudioObjectPrefab,这里用插件自带的prefab即可,
 
或者自己新建一个GamObject然后添加AudioObject脚本,AudioSource会被自动添加(AudioSource不要作任何如AudioClip之类的设置)如果需要池就添加插件的PoolableObject脚本
 
(3)创建一个类别
(4)创建一个AudioItem
注意: AudioItem不能重名,即使是不同的Catagory
(5)创建一个Audio Sub-Item, Audio Sub-Item是真正指定音频文件的地方。
基本设置到这就完成了,可以正常使用了,还可以根据需求调整参数
 
【使用】

1  播放AudioItem:

AudioController.Play( "MyUniqueAudioItemName" )

2  播放唯一的Music:

AudioController.PlayMusic( "MusicAudioItemName" )

注意:AudioController.Play播放的音效是互不影响,可以叠加的,而AudioController.PlayMusic只播放当前的唯一音乐,并且自动处理淡入淡出等。

3  播放列表:

PlayList实际上就是string数组,PlayList里的音乐可以在不同的Category里。

  1. void SetAndPlay()
  2. {
  3. string[] playList = new string[2];
  4. playList[0] = "01";
  5. playList[1] = "02";
  6. AudioController.SetMusicPlaylist(playList);
  7. AudioController.PlayMusicPlaylist();
  8. }
之后播放下一首 AudioController.PlayNextMusicOnPlaylist();

4 更多例子:

AudioController.Play( "MySoundEffect1" );

AudioController.Play( "MySoundEffect2", new Vector3( posX, posY, posZ ) );

AudioController.PlayMusic( "MusicTrack1" );

AudioController.SetCategoryVolume( "Music", 0.5f );

AudioController.PauseMusic();

改变Pitch

(1) 用unity自带的AudioSource里的pitch改

  1. AudioObject obj = AudioController.Play("01");
  2. obj.audio.pitch = 0.3f;

(2) 使用AudioToolKit的初始pitch设置(下图的Pitch Shift), 或者随机pitch设置(下图的Random Pitch),均以

半音程为1个单位。

(3)

AudioObject obj = AudioController.Play("Sound1");

obj.audio.pitch = AudioObject.TransformPitch(10);

最新文章

  1. MySQL 启动服务报错解决方案
  2. 更改python的编码问题:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 56: ordinal not in range(128)
  3. javascript垃圾回收机制
  4. atprogram.exe : Atmel Studio Command Line Interface
  5. CALayer的基本操作
  6. C++变量的“总分性”(Mereology)
  7. 仅仅需手动添加一行代码就可以让Laravel4执行在SAE (v. 1.0.0)
  8. vim 简单笔记
  9. mybatis 配置 log4j 日志
  10. Spring Security(三十一):9.6 Localization(本地化)
  11. ASP.Net Web API 输出缓存 转载 -- Output caching in ASP.NET Web API
  12. Google Protocol Buffers学习
  13. GCC编译器原理(二)------编译原理一:ELF文件(3)
  14. C++ code:浮点数的比较(Floating-Pointing Number Comparison)
  15. php获得可靠的精准的当前时间 ( 通过授时服务器 )
  16. jQuery-处理css样式
  17. 原生JS实现随机点名项目
  18. eclipse JavaEE的配置
  19. 第一课 了解SQL
  20. 史上更全的 MySQL 高性能优化实战总结!

热门文章

  1. 【计算几何】【辛普森积分法】UVALive - 7076 - Highway
  2. 【后缀数组】【线段树】poj3974 Palindrome
  3. Ubuntu 16.04屏幕阅读Screen Reader导致快捷键失灵的问题解决
  4. MathType插入空格
  5. js数据加载完成的方法
  6. Android Design Support Library介绍之:环境搭建
  7. 配置SSH单向无密码访问
  8. shell脚本编写注意事项
  9. C# 操作mongodb 简单实例
  10. idea tomcat 怎样出现update classes and resources