音效系统
音频源和音频监听器组件的使用,音频源组件常用的一些函数,音频过滤器和音频混响区的一些介绍等。
音频源和音频监听器组件:作用:用来播放声音的组件,unity引擎实际是在模拟我们现实中的一种声音播放和接收。
也就是说除了负责播放的组件外,还需要一个负责接收声音的,叫音频监听器组件,每个场景只能有一个音频监听器。
音频源(AudioSource)组件常用的属性:音频剪辑AudioClip:设置播放的音频剪辑
静音:勾选后播放声音的时候是禁止的
绕过效果BypassEffects:课快速“绕过”应用于音频源的滤波效果。
唤醒时播放Play On Awake :是否唤醒的时候自动播放
循环Loop:是否循环来播放这个音频
优先级Priority:确定场景中所有并存的音频源的优先权,值为0-256之间,0为优先级最高,256优先级最低。
音量Volume:影响播放的音量大小
音调Pict:影响音频的播放速度,大于1就会提高播放速度,小于1降低播放速度
空间混合Spatial Blend:设置3D引擎对音频源的影响程度。
3D声音设置3DSound Settings:Min Distance最小距离:超过该距离声音就会开始减小
MaxDistance最大距离:声音衰减的最大距离。
脚本控制音频
创建脚本,挂载在AudioSource上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
AudioSource audio;
// Start is called before the first frame update
void Start()
{
audio = transform.GetComponent<AudioSource>();
audio.clip = Resources.Load<AudioClip>("bj4");
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown("a"))
{
if(audio.isPlaying == false)
{
audio.Play();
}
else
{
Debug.Log("音频已经在播放中,无需重复播放");
}
}
if (Input.GetKeyDown("b"))
{
audio.Pause();
}
if (Input.GetKeyDown("c"))
{
audio.Stop();
}
}
}
音频过滤器和音频混响区
常用的音频过滤器:作用:用于对声音进行过滤的组件
音频低通过滤器Audio Low Pass Filter 抑制高频音,通行低频音
音频高通过滤器Audio High Pass Filter:抑制低频音,通行高频音
音频合音过滤器Audio Chorus Filter:合成由多个音频相同但略有不同的声音,比如合唱效果。
音频失真过滤器Audio Distortion Filter对音频的失真处理,比如模拟破收音机的声音。
音频回声过滤器Audio Echo Filter:延迟重复一个声音,比如模拟在峡谷中,雷声
音频混响过滤器Audio Reverb Filter:对音频剪辑并失真,创建个性化的混响效果。
音频混响区别Reverb Zones:作用::获取音频剪辑并根据音频侦听器所在的混响区进行失真处理,用来模拟
声音在不同区域的衰减及衍射效果
常用的参数:最小距离MinDistance,最大距离MaxDistance。
音频管理器:作用:设置一些全局的声音效果,比如说全局的声音大小,衰减因子等。
常用属性:全局变量:所有声音的播放音量
音量衰减因子:全局的衰减系数,该数值越高,音量衰减速度越快。
DSP缓冲大小:调节缓冲区大小可以优化性能和延迟。默认:缓冲区默认的大小,最小延迟:牺牲性能以换取低延迟
良好延迟:性能与延迟平衡
最佳性能:牺牲延迟以换取最佳性能