Unity5 音效一
来源:互联网 发布:淘宝led灯外发加工真假 编辑:程序博客网 时间:2024/05/21 03:29
Unity5 音效一
一、Unity 支持音效格式
下图为Unity目前所支持的音效格式
常用的为 .mp3, .ogg, .wav
.wav 适用于较短的音效
.mp3 适用于较长的音效
.ogg 适用于较长的音效
下面以一个 .mp3 音效拖到Project 下,然后选中该音效,在Inspector面板显示其属性
Load Type:
DecompressOnLoad : 音效文件加载后为解压缩状态,好处是耗费CPU少。
CompressedInMemory :音效文件在内存中保持压缩状态,占用内存少,但是耗费CPU,当使用该音效时首先要CPU对其进行解压,然后才能使用。
Streaming : 当播放该音效时,从磁盘以流的形式加载音效数据,好处,占用内存最少,因为只有很少的缓冲数据占用内存。
二、播放音效
首先确认场景中有且只有一个对象挂载了 Audio Listerer 组件(一般摄像机上默认挂载一个)。
然后创建一个对象,添加 AudioSource 组件,将音效拖拽到 AudioClip 参数上,如下图
选中 Play On Awake(开始即播放)
运行游戏,即可听到播放的音效
下面先介绍一些 AudioSource 的一些常用参数
(1)Output 音效混合器
(2)Play On Awake 运行开始立即播放
(3)Loop 是否循环播放
(4)Priority 播放优先权(0 - 255),数值越小,优先级别越高
(5)Volume 播放音量
(6)Pitch 音高,默认为 1,大于1时提高音高,并且会加快播放速度,小于1,降低音高,减慢播放速度,但是数值偏离 1越大,越偏离原始声音
(7)Stereo Pan 立体声,默认为 0,当值为 -1时,只有左声道响,当值为 1时,只有右声道有声音
(8)Spatial Blend 当值为 0时为 2D音效,当值为 1 时为 3D音效
(9)Volume Rolloff 即随着和AudioLister 的距离变化,听到的音量变化曲线
(10)in Distance 当距离超过该数值时,声音开始衰减
(11) Max Distance 当距离超过该数值时,音量衰减为 0
三、通过代码控制播放以及上面所有参数的控制
一般不会使用直接将 音效拖拽到 AudioSource 的AudioClip参数上,因为那样做不利于管理,并且它会在 对象生成的时候立即加载音效到内存,并且不会释放。音效过多或是音效过大时相当耗费内存。
所以要对音效进行动态加载
下面为了省事,直接从Resources 下加载音效了
创建脚本 PlayAudio.CS 将其拖拽到需要播放音效的对象上
using UnityEngine;using System.Collections;using UnityEngine.Audio;//如果添加该脚本的对象上没有挂载 AudioSource组件,将自动添加该组件[RequireComponent(typeof(AudioSource))]public class PlayAudio : MonoBehaviour { private AudioSource _audioSources; public AudioMixerGroup _audioMixerGroup; // Use this for initialization void Start () { _audioSources = GetComponent<AudioSource>(); if (_audioSources == null) { Debug.LogWarning("audioSources is null"); return; } if (_audioMixerGroup != null) _audioSources.outputAudioMixerGroup = _audioMixerGroup; // 设置音效混合器 AudioClip audioClip = Resources.Load("AA") as AudioClip; if (audioClip == null) { Debug.LogWarning("audioClip is null"); return; } _audioSources.clip = audioClip; //动态添加音效 _audioSources.playOnAwake = false; //运行开始立即播放 _audioSources.loop = true; //设置循环播放 _audioSources.priority = 128; //设置优先权 _audioSources.volume = 1; //设置音量大小为 1 _audioSources.pitch = 1; //设置音高为 1 _audioSources.spatialBlend = 0; //设置音效为 2D 音效 _audioSources.minDistance = 1; //设置最小开始衰减距离 _audioSources.maxDistance = 100; //设置最大能听到音量距离 //设置音量衰减类型为线性衰减 _audioSources.rolloffMode = AudioRolloffMode.Linear; } private float currentSecond = 0; //记录当前播放到了第几秒 // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.A)) { if (_audioSources != null) { //设置从第几秒的位置开始播放 _audioSources.time = currentSecond; _audioSources.Play(); } } if (Input.GetKeyDown(KeyCode.D)) { //判断是否为空,是否正在播放 if (_audioSources != null && _audioSources.isPlaying) { currentSecond = _audioSources.time; _audioSources.Pause(); } } if (Input.GetKeyDown(KeyCode.W)) { //判断是否为空,是否正在播放 if (_audioSources != null && _audioSources.isPlaying) { _audioSources.Pause(); AudioClip audioClip = _audioSources.clip; _audioSources.clip = null; Resources.UnloadAsset(audioClip); } } }}
运行点击 A 播放,D暂停,W 释放音效
- Unity5 音效一
- Unity5.x 音效 AudioMixer
- 音频一--音效
- unity播放音效(一)
- android SoundPool播放音效(一)
- unity5.X AssetBundle使用(一 )
- Unity5-ABSystem(一):AssetBundle原理
- Unity5-ABSystem(一):AssetBundle原理
- Unity5 雾化效果(一)
- Unity5的AssetBundle(一、打包)
- 音效
- 音效
- [Unity基础]unity5中的动画系统(一)
- Unity5混音器DSP插件编写教程【一】
- unity5 操作sqlite3数据库(一) Android版本
- 《Unity5实战》一书的勘误
- unity5.X AssetBundle资源打包(一 )
- QSound一句代码播放简单的音效
- DIY系列之Web浏览器(3)——html
- DIY系列之Web浏览器(4)——css
- 点击使其两秒过后放大
- GoldenGate 使用reperror进行错误处理
- 避免service被杀死
- Unity5 音效一
- C++引用
- SDK学院--易接网游SDK中间件接入使用说明-Unity3D游戏接口
- Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
- Mahout之推荐算法基本实例
- UIScrollView 多图片间距
- ajax同步
- 错误: 找不到或无法加载主类
- 点击弹出所选内容