1. 程式人生 > >Unity3D 遊戲引擎之詳解遊戲開發音訊的播放(十五)

Unity3D 遊戲引擎之詳解遊戲開發音訊的播放(十五)

找一個音樂檔案,我這裡使用了一個.mp3音樂檔案,我命名為0.mp3 如下圖所示將它拖動到右側Audio Clip處。


我們發現 Audio Source 有很多設定的屬性,那麼MOMO將一些比較重要的屬性諾列出來。

AudioClip :聲音片段,還可以在程式碼中去動態的擷取音樂檔案。

Mute : 是否靜音

Bypass Effects: 是否開啟音訊特效

Play On Awake: 開機自動播放

Loop:迴圈播放

Volume: 聲音大小,取值範圍0.0 到 1.0

Pitch:播放速度,取值範圍在 -3 到 3 之間 設定1 為正常播放,小於1 為減慢播放 大於1為加速播放。

建立一個指令碼我命名為audio.cs 用來音樂的播放。本章將實現3個按鈕 點選實現 播放音樂、 停止音樂、 暫停音樂 ,與一個橫向拖動條通過手指的拖動實現動態修改音樂聲音。

audio.cs 

using UnityEngine;
using System.Collections;

public class audio : MonoBehaviour {

    //音樂檔案
    public AudioSource music;	
    //音量
    public float musicVolume;	
    
    void Start() {
   		 //設定預設音量
   		 musicVolume = 0.5F;	
    }
	void OnGUI() {
		
		//播放音樂按鈕
		if (GUI.Button(new Rect(10, 10, 100, 50), "Play music"))  {
			
			//沒有播放中
			if (!music.isPlaying){
				//播放音樂
				music.Play();
			}
			
		}
		
		//關閉音樂按鈕
		if (GUI.Button(new Rect(10, 60, 100, 50), "Stop music"))  {
			
			if (music.isPlaying){
				//關閉音樂
				music.Stop();
			}
		}
		//暫停音樂
		if (GUI.Button(new Rect(10, 110, 100, 50), "Pause music"))  {
			if (music.isPlaying){
				//暫停音樂
				//這裡說一下音樂暫停以後
				//點選播放音樂為繼續播放
				//而停止以後在點選播放音樂
				//則為從新播放
				//這就是暫停與停止的區別
				music.Pause();
			}
		}

		//建立一個橫向滑動條用於動態修改音樂音量
		//第一個引數 滑動條範圍
		//第二個引數 初始滑塊位置
		//第三個引數 起點
		//第四個引數 終點
		musicVolume = GUI.HorizontalSlider (new Rect(160, 10, 100, 50), musicVolume, 0.0F, 1.0F);
	
		//將音量的百分比打印出來
		GUI.Label(new Rect(160, 50, 300, 20), "Music Volueme is " + (int)(musicVolume * 100) + "%");
		
		if (music.isPlaying){
			//音樂播放中設定音樂音量 取值範圍 0.0F到 1.0 
			music.volume = musicVolume;
		}
	}
}


將audio.cs 繫結在攝像頭上,將audio遊戲物件拖動賦值給Music 這個AudioSource這個物件。這裡強調一下AudioListenr ,它音訊監聽器,用來監聽音樂檔案的播放。這是一個重要的屬性,一定要勾選,只有勾選後才可以進行音樂的播放。



build and run 執行我們這個遊戲Demo,一切功能完美實現,哇咔咔~


最後歡迎各位盆友可以和MOMO一起討論Unity3D遊戲開發,大家一起學習一起進步,哇咔咔~~~ 附上Unity3D工程的下載地址,Xcode專案我就不上傳了,須要的自己匯出。今天心裡有點不高興! 5555555555。就這樣晚安~



相關推薦

Unity3D 遊戲引擎遊戲開發音訊播放

找一個音樂檔案,我這裡使用了一個.mp3音樂檔案,我命名為0.mp3 如下圖所示將它拖動到右側Audio Clip處。我們發現 Audio Source 有很多設定的屬性,那麼MOMO將一些比較重要的屬性諾列出來。AudioClip :聲音片段,還可以在程式碼中去動態的擷取音樂檔案。Mute : 是否靜音By

Android開發學習筆記基礎UI控制元件ListView

一、ListView常用XML屬性: android:choiceMode="" 設定ListView的選擇行為 android:divider="" 設定List列表項的分隔條(即可用顏

InheritableThreadLocal類原理簡介使用 父子線程傳遞數據 多線程中篇

pri span 理解 wid spl child -s 應該 bsp 上一篇文章中對ThreadLocal進行了詳盡的介紹,另外還有一個類: InheritableThreadLocal 他是ThreadLocal的子類,那麽這個類又有什麽作用呢?

rocketmq原始碼分析broker入口BrokerController解析

broker的入口管理服務類BrokerController,在該類中定義並初始化了整個broker需要的核心操作。broker在

Android 遊戲開發主角的移動與地圖的平滑滾動

程式碼的實現方式       還是以人物向右移動為例,我們須要三個座標 一個是m_HeroPos 來儲存人物在地圖中的X座標  一個是 mScreenPos 來儲存人物在螢幕中的顯示座標 mMapPos 來儲存地圖在手機螢幕中的顯示座標,按鍵盤右鍵後人物在地圖中的座標加上8畫素(表示行走的步長),當人物的座標

Java程式設計師從笨鳥到菜鳥細談HibernateHQL與QBC查詢方式

歡迎關注微信賬號:java那些事:csh624366188.每天一篇java相關的文章 java交流工作群1: 77800592(已滿) java交流學生群2:234897635(已滿) java交流工作群3:94507287 java交流工作群4: 272265434 我的郵箱:

LVS 負載均衡群集、地址轉換模式LVS-NAT案例

8.4 功能 block x86_64 ati local linu 它的 har 前言 · Linux Virtual Server (LVS)是針對 Linux 內核開發的一個負載均衡項目,是由我國章文嵩博士在 98 年 5月創建。· LVS 實際上相當於基於 IP

設計模式 - 工廠模式3種

這篇文章作為個人學習備忘筆記,通過生活中的牛奶工廠例項,比對3種工廠模式的不同。 工廠模式一句話總結: 只對生產結果負責,不要三無產品。 生活中的工廠例子 小作坊:五花八門什麼都能生產,但生產質量和產品種類不一定滿足消費者的需求。 專業工廠:遵循一定標準,

【linux】Valgrind工具集:Callgrind效能分析圖

一、概述 1、Callgrind Callgrind用於記錄程式中函式之間的呼叫歷史資訊,對程式效能分析。預設情況下,收集的資料包括執行的指令數,它們與原始碼行的關係,函式之間的呼叫者、被呼叫者關係以及此類呼叫的數量。可選項是,對快取記憶體模擬和分支預測(類似於Cachegrin

css外邊距摺疊margin collapsing

外邊距摺疊指的是毗鄰的兩個或多個外邊距 (margin) 會合併成一個外邊距,本文詳細的介紹了一下css外邊距摺疊的實現,分為3種情況,非常具有實用價值,需要的朋友可以參考下 前文 這是的一個經典的老問題,因為之前剛好有讀者朋友問到,順便整理一下。 從一個簡單例子說起 先看一個簡單示例: `<

Android開發學習筆記基礎UI控制元件ImageView、CheckBox、RadioButton

一、ImageView:直接繼承自View,它的作用是在介面上顯示Drawable物件。 ImageView在佈局檔案(如main_activity.xml)中常用的屬性 有 scaleType ,s

Android開發學習筆記基礎UI控制元件Spinner

Spinner:彈出一個列表選擇框,供使用者選擇。繼承自ViewGroup,因為可以容納很多列表項,因此它也是一個容器控制元件。 給Spinner指定資料來源的2種方法: 一、通過指定xml檔案來指

Android開發學習筆記基礎UI控制元件ListView-SimpleAdapter

一、ListView控制元件: <ListView android:id="@+id/list_view_demo" android:layout_width="match_pa

【Java入門提高篇】Day34 Java容器類WeakHashMap

public class WeakHashMapTest { public static void main(String[] args){ testWeakHashMap(); } private static void testWeakHashMap

【轉】htop使用--史上最強沒有之一

在管理程序時通常要藉助一些工具,比較常用的就是ps和top了;不過CentOS還為我們提供了一個更加強大的工具htop,下面就來了解一下此工具的使用方法。一、安裝htop htop工具在epel源中提供,請自行配置epel源,也可以直接下載htop的原始碼包進行安裝。 二、htop的介面操作 htop跟

flowplayer網頁視訊播放器事例--包含各種引數說明自譯 flowplayer網頁視訊播放器事例--包含各種引數說明自譯

flowplayer網頁視訊播放器事例詳解--包含各種引數說明(自譯) <html xmlns= "http://www.w3.org/1999/xhtm

char型別的範圍-128~127

類似問題:一個n位有符號整型數值,其範圍為-2^(n-1) ~2^(n-1) -1。 此類問題的根結在於: “人們解決問題時,習慣以人的思維思考問題,但是,計算機本身卻是以機器的思維進行處理的”。 在這裡,就表現為:計算機對資料的處理其實是以“補碼”的形式,而非日常生活中人

例項不同VLAN間通訊轉發過程

資料包從電腦發出的時候,本身是沒有VLAN TAG的,當資料包進入交換機的ACCESS口後,交換機會打上 VLAN TAG(交換機內部),然後從ACCESS口發出就剝離掉VLAN TAG了,然後傳送到目的電腦上面。下面這個圖就是很好的解釋,如果你在方案一中間的線路上面去捕捉資料包,捕捉到的資料包是沒有802

Pygame:pygame 模組

pygame Pygame 最頂層的包。 函式 & 屬性 pygame.init()  —  初始化所有匯入的 pygame 模組 pygame.quit()  —  解除安裝所有匯入

SpringMVC接受JSON引數及常見錯誤總結@RequestBody轉載

最近一段時間不想使用Session了,想感受一下Token這樣比較安全,穩健的方式,順便寫一個統一的介面給瀏覽器還有APP。所以把一個練手專案的前臺全部改成Ajax了,跳轉再使用SpringMVC控制轉發。對於傳輸JSON資料這邊有了更深的一些理解,分享出來,請