溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Unity3D?AudioSource組件如何使用

發(fā)布時(shí)間:2023-05-11 15:26:54 來(lái)源:億速云 閱讀:113 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了Unity3D AudioSource組件如何使用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Unity3D AudioSource組件如何使用文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

1 簡(jiǎn)介

1)AudioSource 與 AudioListener 簡(jiǎn)介

AudioSource(音頻源)組件用于控制播放 AudioClip(音頻片段),能夠控制 2D 和 3D(距離越遠(yuǎn),聲音越?。┞曇舨シ?,它一般掛在產(chǎn)生聲源的游戲?qū)ο笊稀?/p>

AudioListener (音頻監(jiān)聽(tīng)器)組件用于監(jiān)聽(tīng) AudioSource 播放的音頻,它一般掛在 Camera 或游戲角色上,每個(gè)場(chǎng)景中最多只有一個(gè) AudioListener。AudioSource 播放音頻時(shí),會(huì)產(chǎn)生一個(gè)音頻場(chǎng),只有在音頻場(chǎng)范圍內(nèi)的 AudioListener 才能監(jiān)聽(tīng)到聲音。

AudioClip 是音頻片段,AudioSource 在播放音頻時(shí),必須綁定一個(gè) AudioClip。

2)AudioSource 面板屬性

Unity3D?AudioSource組件如何使用

  • AudioClip:音頻片段

  • Mute:靜音

  • Play On Awake:游戲開(kāi)始時(shí)播放聲音

  • Loop:是否循環(huán)播放

  • Volume:音量

  • Spatial Blend:2D、3D 聲音調(diào)節(jié)

  • Min Distance:3D 聲音最小距離

  • Max Distance:3D 聲音最大距離

補(bǔ)充:Unity3D 官方提供了一些音頻資源,如下:

Unity3D?AudioSource組件如何使用

3)代碼控制音頻播放

// 加載音頻片段
AudioClip audioClip = (AudioClip) Resources.Load("Audio/Footstep01");
// 獲取AudioSource組件
AudioSource audioSource = GetComponent<AudioSource>();
// 綁定音頻片段
audioSource.clip = audioClip;
// 播放音頻(選其中一種方式)
audioSource.Play();
// 此方式播放音頻, Unity3D會(huì)在transform.position處創(chuàng)建一個(gè)空游戲?qū)ο? 播放完音頻后自動(dòng)銷毀該游戲?qū)ο?
AudioSource.PlayClipAtPoint(audioClip, transform.position);

2 應(yīng)用

本節(jié)將通過(guò)一個(gè)案例展示 Unity3D 播放立體聲效果。

1)游戲界面

Unity3D?AudioSource組件如何使用

2)游戲?qū)ο髮蛹?jí)結(jié)構(gòu)

Unity3D?AudioSource組件如何使用

說(shuō)明:AudioSourceSphere 游戲?qū)ο筇砑恿?AudioSource 組件,并且將 Unity3D 官方提供的 Footstep01.wav 音頻片段拖拽到 AudioSource 組件中;Player 游戲?qū)ο筇砑恿?AudioListener,并移除 MainCamera 中默認(rèn)添加的 AudioListener。

3)AudioSource 組件

Unity3D?AudioSource組件如何使用

4)腳本組件

AudioController.cs

using UnityEngine;

public class AudioController : MonoBehaviour {
	private PlayerController player;
	private AudioSource audioSource;

	private void Awake() {
		audioSource = GetComponent<AudioSource>();
		player = GameObject.Find("Player").GetComponent<PlayerController>();
	}

	private void Update() {
		if (player.isMoving) {
			PlayAudio();
		}
	}

	private void PlayAudio() {
		if (!audioSource.isPlaying) {
			audioSource.Play();
		}
	}
}

說(shuō)明: AudioController 腳本組件掛在 AudioSourceSphere 游戲?qū)ο笊稀?/p>

PlayerController.cs

using UnityEngine;

public class PlayerController : MonoBehaviour {
	public bool isMoving = false;

	private void Update() {
		isMoving = Move();
	}

	private bool Move() {
		float hor = Input.GetAxis("Horizontal");
        float ver = Input.GetAxis("Vertical");
		if (Mathf.Abs(hor) > 0.1f || Mathf.Abs(ver) > 0.1f) {
			Vector3 dire = new Vector3(hor, 0, ver) * Time.deltaTime * 10;
			transform.position += dire;
			return true;
		}
		return false;
	}
}

說(shuō)明: PlayerController 腳本組件掛在 Player 游戲?qū)ο笊稀?/p>

關(guān)于“Unity3D AudioSource組件如何使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Unity3D AudioSource組件如何使用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI