3D声音

3D立体声和2D声不同的地方是它是会随着距离衰减的,距离越近声音越大,距离越远声音越小。

1: 声音: 背景音乐和音效;

2: 声音文件支持的格式: ogg, mp3, wave, AIFF;

  ogg比较流行,很多安卓里面的声音使用ogg的格式是为了绕开mp3的版权

  ogg和mp3都比较常用

  wave和ogg、mp3比起来比较大,没有压缩的数字音乐,可以直接写到声卡里面

3:音频管理器: Edit-->ProjectSetting--> Audio;和物理引擎一样有管理器

Global Volume: 全局播放的音量;

Volume Rolloff Scale: 衰减因子,越大,声音衰减越快;

Doppler Factor: 多普勒因子;模拟多普勒效应的监听效果:0关闭, 1 高速物体的多普勒效应会比较明显的监听的到;

Default Speak Mode: 设置扬声器模式;默认值为2(立体声, AudioSpeakModer); stereo立体声

System Sample Rate: (输出采样率);

DSP Buffer Size: 调整DSP缓冲区大小优化延迟和性能;越大效果越好

Max Virutal/Real Voices Count: 同时播放的真实声音的数量;虚拟的声音最后会和其他的声音混合在一起,所以比真实的声音多。

Disable Unity Audio: 是否使用音频;

音频监听器

类似于人的耳朵,把耳朵移动到哪里,就可以听到那里附近的声音,也可以比喻为话筒。如果场景中没有音频监听器,那么玩家是听不到声音的,即使那个物体正在发声。

1: 音频监听器在3D世界中扮演话筒的角色,他接受场景中输入的音频源,通过设备的扬声器来播放声音;

2: 当一个音频监听器挂载到场景中的一个游戏对象上,任何音源如果接近音频监听器,都会输出到计算机的扬声器中,每个场景中只能有一个音频监听器,一般会默认的添加到主摄像机上;这样摄像机拍到哪里我们就监听哪里的声音。

 主摄像机初始化的时候也是带着Audio Listener组件的。

3: AudioClip: 声音文件,就是声音的资源文件

AudioSource(声源)

我们需要对声音进行衰减,需要计算监听器与声源的距离,需要对一些声源做混合,就要使用AudioSource组件,帮助我们播放AudioClip(音频文件)

1: 音频源: 在场景中播放音频剪辑,如果一个音频剪辑是一个3D,那么音频源就会在给定的位置,然后随着距离进行衰减,还可以在3D和2D之间进行切换;

2: 创建一个音频源:

(1): 导入要播放的声音文件;

(2): 创建一个节点,并加上Audio-->Audio Source组件;

(3): 将AudioClip加入到AudioSource中;

(4): 代码控制播放;

3:属性:

AudioClip: 要被播放的文件;

Output: 音频剪辑通过音频混合器输出;

Mute: 是否静音;

Play On Wake唤醒时播放;

loop: 是否循环播放;

Priority: 播放的优先级,0最高,256最低,默认128,优先级高的一般是重要的音效

Volume 音量 Pitch 音调 Stereo Pan立体声(-1左声道, 1右声道)

Spatial Blend(空间混合), 0为2D音效, 1为3D音效,2D音效不会做衰减

Spread: (3D)立体声在扬声器空间中的传播速度;

Volume Rolloff音量衰减模式: 对数(Logarithmic),线性(Linear)和自定义模式(Custom),自定义模式要自己加控制点。

Min Distance/Max Distance衰减的范围,衰减距离的 开始结束, 最小距离(声音保持最大量),最大距离(不再衰减)

              当我们的音频监听器和声源的距离小于Min Distance的时候,都是最大声音,大于Max Distance的都是最小声音或者没有,这个取决于那个声音曲线的设置,一般自定义才可以设置超出Max距离后还有声音。

              当我们调节Min Distance/Max Distance的时候,Scene视图里面的声源球的范围也会随之改变,两个球体之间的部分就是有衰减的部分。

            

声音实例

1.创建Unity工程目录

2.在resources文件夹下面创建一个sounds文件夹

3.把准备好的声音素材复制进去

4.点击音频资源右下角的播放可以播放,最后一行的数值的话,前面是码率,后面是声音的时间

5.创建一个audio的空节点,添加AudioSource组件

6.把准备好的音频文件audioclip文件拖进audio节点的AudioSource组件的属性中。

7.使用代码来控制声音播放,创建一个脚本audio_test挂载在audio节点下面

8.打开audio_test脚本

第一步:写一个public AudioSource s;公开属性,然后把audio节点拖进属性中,这样就关联好了自己的AudioSource组件(其实我觉得可以用getComponent获得组件,事实证明可以)

第二步:设置声音

using UnityEngine;
using System.Collections; public class audio_test : MonoBehaviour { public AudioSource s;
// Use this for initialization
void Start () {
// 声音的全局设置
AudioConfiguration audio_config = AudioSettings.GetConfiguration();
//....中间设置内容
AudioSettings.Reset(audio_config);//设置完后再放回去
// end
     //上面两句必须写,不然下面那句执行无效,我也不知道为啥     // this.s.Play();//如果里面加数字不是延迟播放,而是类似快进,码率为快进1秒,码率X2位快进2秒
this.s.PlayDelayed();//延迟5秒播放
} // Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown()) {//鼠标左键按下
if (this.s.isPlaying)
{
this.s.Pause();
}
else {
this.s.Play();
}
}
if (Input.GetMouseButtonDown()) {//鼠标右键按下
this.s.Stop();
}
}
}

9.鼠标左键单击Game视图,声音过5秒播放,再点击暂停,再点击继续播放,鼠标右键停止播放。

关于Unity中3D声音的使用的更多相关文章

  1. 关于Unity中的声音管理模块(专题七)

    声音的要素 1: 音频文件AudioClip2: 音源AudioSource;3: 耳朵AudioListener;//全局只能有一个4: 2D/3D音频;//2D只是简单地播放声音,3D可以根据距离 ...

  2. 3D语音天气球(源码分享)——在Unity中使用Android语音服务

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 这个项目准备分四部分介绍: 一:创建可旋转的"3D球":3 ...

  3. 在Unity中使用UGUI修改Mesh绘制几何图形

    在商店看到这样一个例子,表示很有兴趣,他们说是用UGUI做的.我想,像这种可以随便变形的图形,我第一个就想到了网格变形. 做法1: 细心的朋友应该会发现,每个UGUI可见元素,都有一个‘Canvas ...

  4. 【unity shaders】:Unity中的Shader及其基本框架

    shader和Material的基本关系 Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出.绘图单元可以依据这个输出来将图 ...

  5. NGUI研究院之在Unity中使用贝塞尔曲线(六)[转]

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...

  6. Unity中简单使用Opengl

    简介 由于项目特殊需求,需要在unity中使用一些OpenGL的东西来绘制图形(PS:其实就是有一个拖尾算法只有OpenGL版本~~~懒得改了,直接在unity中使用OpenGL算了).所以琢磨咯下如 ...

  7. Unity教程之再谈Unity中的优化技术

    这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体   这一步主要是为了针对性能瓶颈中的”顶点 ...

  8. Unity中加入Android项目的Build步骤

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简介: 有的项目需要在Android中加入Unity功能,例如ANDROID应用中嵌入Un ...

  9. 【Unity技巧】Unity中的优化技术

    http://blog.csdn.net/candycat1992/article/details/42127811 写在前面 这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得 ...

随机推荐

  1. /etc/ssh/sshd_config 关建字:AllowUsers root test01

    新加用户,在AllowUsers 新增的用户名,重启sshd后,新增的用户才能登录服务器.

  2. Java map双括号初始化方式的问题

    关于Java双括号的初始化凡是确实很方便,特别是在常量文件中,无可替代.如下所示: Map map = new HashMap() { { put("Name", "Un ...

  3. 超级账本 --- ReadWriteSet的逻辑结构

    用于时序校验,解决双花问题 (doublespending)• Endorser– 模拟执行交易,生成ReadSet和WriteSet– ReadSet是交易前key值的状态– WriteSet是交易 ...

  4. (原创)C++11改进我们的程序之简化我们的程序(五)

    这次要讲的是:c++11中的bind和function std::function 它是函数.函数对象.函数指针.和成员函数的包装器,可以容纳任何类型的函数对象,函数指针,引用函数,成员函数的指针.以 ...

  5. 每日英语:The Risks of Big Data for Companies

    Big data. It's the latest IT buzzword, and it isn't hard to see why. The ability to parse more infor ...

  6. MATLAB左除和右除

    矩阵的除法包括左除(A\B).右除(A/B)和点除(A./B)三种. 一般情况下,x = A\b是方程组A*x = b的解, 而x = b/A是方程组x*A = b的解, x = A./B表示同型矩阵 ...

  7. 基于jQuery功能非常强大的图片裁剪插件

    今天我们要来介绍一款基于jQuery功能非常强大的图片裁剪插件,这款jQuery图片裁剪插件可以选择裁剪框的尺寸比例,可以设置高宽尺寸,同时可以设置图片翻转角度,当然也支持图片的缩放,裁剪框也可以用鼠 ...

  8. 基于jQuery自适应宽度跟高度可自定义焦点图

    基于jQuery自适应宽度跟高度可自定义焦点图.这是一款带左右箭头,缩略小图切换的jQuery相册代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <section cl ...

  9. InstallShield卸载状态

    uninstallaing() 它对应于-unistall 命令,在installshield 2009及之前的版本,在控制面板中选择"uninstall”会触发这个命令.但在install ...

  10. WPF中的命令简介

    使用Prism委托命令Demo: WPF委托命令DelegateCommand的传参方式 在WPF中使用命令的步骤很简单 1.创建命令 2.绑定命令 3.设置命令源 4.设置命令目标 WPF中命令的核 ...