Unity学习笔记(十五)音效及麦克风
2026/5/27 18:55:46 网站建设 项目流程

音频文件属性设置

音频源属性设置

3D音效设置

音效的代码控制

public AudioSource AudioSource;
public AudioClip Clip;

代码控制播放停止

if (Input.GetKeyDown(KeyCode.P)) { AudioSource.Play(); } if (Input.GetKeyDown(KeyCode.S)) { AudioSource.Stop(); } if (Input.GetKeyDown(KeyCode.M)) { AudioSource.Pause(); }

停止暂停和 暂停后播放的效果是一样的 都会继续播放现有的音效

if(Input.GetKeyDown(KeyCode.D)) { AudioSource.UnPause(); }

延迟播放

AudioSource.PlayDelayed(5);

如何检测音效播放完毕

希望一个音效播放完毕后 想要做什么事情

那么就可以在Updated生命周期函数中不停的去检测 它的该属性

false代表播放完毕

if (AudioSource.isPlaying) { }

如何动态控制音效播放

比如受伤 回血等

1直接在要播放音效的对象上挂载该脚本 控制播放

2实例化挂载了音效源脚本对象 用的比较少

3用一个AudioSource控制播放不同音效

AudioSource aus = this.gameObject.AddComponent<AudioSource>(); aus.clip = Clip; aus.Play();

潜在点 :一个GameObject可以挂载多个音效脚本 要管理他们,
控制他们的播放 停止 不然我们没有办法准确的获取

麦克风

AudioClip clip;

获取设备麦克信息

string[] strs = Microphone.devices; for(int i = 0; i < strs.Length; i++) { print(strs[i]); }

开始录制

设备名; 超过录制长度后 是否重头录制 ;录制时长; 采样频率;

clip=Microphone.Start(null,false,10,44100);

结束录制

Microphone.End(null);

获取音频数据用于存储或传输

float[] f =new float[clip.channels*clip.samples]; clip.GetData(f, 0); print(f.Length);

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询