Unity3D 游戲引擎之詳解游戲開發(fā)音頻的播放
游戲音頻的播放在任何游戲中都占據(jù)非常重要的地位,音頻的播放還可以分為兩種,一種為游戲音樂,另一種為游戲音效。前者適用于較長(zhǎng)的音樂,如游戲背景音樂。第二種試用與比較短的游戲音樂,如開槍,打怪 時(shí)“砰砰”一瞬間播放的游戲音效。今天MOMO將用下面的例子帶盆友們?nèi)テ饰鯱nity3D游戲音樂與音效的播放。
Unity3D游戲引擎一共支持4個(gè)音樂格式的文件
.AIFF 適用于較短的音樂文件可用作游戲打斗音效
.WAV 適用于較短的音樂文件可用作游戲打斗音效
.MP3 適用于較長(zhǎng)的音樂文件可用作游戲背景音樂
.OGG 適用于較長(zhǎng)的音樂文件可用作游戲背景音樂
在場(chǎng)景中創(chuàng)建一個(gè)空的游戲?qū)ο蟆?/strong>
GameObject -> CreateEmpty 創(chuàng)建成功后我命名為audio。
給audio添加一個(gè)AudioSource屬性,這個(gè)屬性非常的重要,Unity播放音樂主要就是要靠這個(gè)東西。
Component -> Audio - > Audio Source。
找一個(gè)音樂文件,我這里使用了一個(gè).mp3音樂文件,我命名為0.mp3 如下圖所示將它拖動(dòng)到右側(cè)Audio Clip處。
我們發(fā)現(xiàn) Audio Source 有很多設(shè)置的屬性,那么MOMO將一些比較重要的屬性諾列出來(lái)。
AudioClip :聲音片段,還可以在代碼中去動(dòng)態(tài)的截取音樂文件。
Mute : 是否靜音
Bypass Effects: 是否打開音頻特效
Play On Awake: 開機(jī)自動(dòng)播放
Loop:循環(huán)播放
Volume: 聲音大小,取值范圍0.0 到 1.0
Pitch:播放速度,取值范圍在 -3 到 3 之間 設(shè)置1 為正常播放,小于1 為減慢播放 大于1為加速播放。
創(chuàng)建一個(gè)腳本我命名為audio.cs 用來(lái)音樂的播放。本章將實(shí)現(xiàn)3個(gè)按鈕 點(diǎn)擊實(shí)現(xiàn) 播放音樂、 停止音樂、 暫停音樂 ,與一個(gè)橫向拖動(dòng)條通過(guò)手指的拖動(dòng)實(shí)現(xiàn)動(dòng)態(tài)修改音樂聲音。
audio.cs
- using UnityEngine;
- using System.Collections;
- public class audio : MonoBehaviour {
- //音樂文件
- public AudioSource music;
- //音量
- public float musicVolume;
- void Start() {
- //設(shè)置默認(rèn)音量
- musicVolume = 0.5F;
- }
- void OnGUI() {
- //播放音樂按鈕
- if (GUI.Button(new Rect(10, 10, 100, 50), "Play music")) {
- //沒有播放中
- if (!music.isPlaying){
- //播放音樂
- music.Play();
- }
- }
- //關(guān)閉音樂按鈕
- if (GUI.Button(new Rect(10, 60, 100, 50), "Stop music")) {
- if (music.isPlaying){
- //關(guān)閉音樂
- music.Stop();
- }
- }
- //暫停音樂
- if (GUI.Button(new Rect(10, 110, 100, 50), "Pause music")) {
- if (music.isPlaying){
- //暫停音樂
- //這里說(shuō)一下音樂暫停以后
- //點(diǎn)擊播放音樂為繼續(xù)播放
- //而停止以后在點(diǎn)擊播放音樂
- //則為從新播放
- //這就是暫停與停止的區(qū)別
- music.Pause();
- }
- }
- //創(chuàng)建一個(gè)橫向滑動(dòng)條用于動(dòng)態(tài)修改音樂音量
- //第一個(gè)參數(shù) 滑動(dòng)條范圍
- //第二個(gè)參數(shù) 初始滑塊位置
- //第三個(gè)參數(shù) 起點(diǎn)
- //第四個(gè)參數(shù) 終點(diǎn)
- musicVolume = GUI.HorizontalSlider (new Rect(160, 10, 100, 50), musicVolume, 0.0F, 1.0F);
- //將音量的百分比打印出來(lái)
- GUI.Label(new Rect(160, 50, 300, 20), "Music Volueme is " + (int)(musicVolume * 100) + "%");
- if (music.isPlaying){
- //音樂播放中設(shè)置音樂音量 取值范圍 0.0F到 1.0
- music.volume = musicVolume;
- }
- }
- }
將audio.cs 綁定在攝像頭上,將audio游戲?qū)ο笸蟿?dòng)賦值給Music 這個(gè)AudioSource這個(gè)對(duì)象。這里強(qiáng)調(diào)一下AudioListenr ,它音頻監(jiān)聽器,用來(lái)監(jiān)聽音樂文件的播放。這是一個(gè)重要的屬性,一定要勾選,只有勾選后才可以進(jìn)行音樂的播放。
build and run 運(yùn)行我們這個(gè)游戲Demo,一切功能完美實(shí)現(xiàn),哇咔咔~
最后歡迎各位盆友可以和MOMO一起討論Unity3D游戲開發(fā),大家一起學(xué)習(xí)一起進(jìn)步,哇咔咔~~~ 附上Unity3D工程的下載地址,Xcode項(xiàng)目我就不上傳了,須要的自己導(dǎo)出。今天心里有點(diǎn)不高興! 5555555555。就這樣晚安~
下載地址:http://down.51cto.com/data/285709
本文出自 “雨松MOMO的程序世界” 博客,請(qǐng)務(wù)必保留此出處http://xys289187120.blog.51cto.com/3361352/718368
聯(lián)系客服