個人遇到的一個問題:
? ? ? 滑動條Slider控制AudioSource音量,雖然音源大小確實(shí)和滑動條值同步改變,但是實(shí)際音量并未同步改變,只有當(dāng)我關(guān)閉UI界面時,音量才會發(fā)生改變。
這個問題我試了好久沒有解決,所以干脆換一種思路,通過滑動條控制AudioMixer控制音量大小
使用AudioMixer需要注意的地方:
1.需要右鍵暴露參數(shù)(Expose Parameters),并在音頻混合器選項(xiàng)卡中右鍵重命名參數(shù),以便在代碼中調(diào)用
2.滑動條的最大值和最小值需要與AudioMixer中的值域匹配,值域如下圖。
? ?我一般最小值設(shè)置為-20,最大值為20。(需要注意的是,這樣就算滑動條拉到最小值也不會停止播放音樂,所以我加了一個判斷語句和公共AudioSource變量,當(dāng)滑動條拉到最小值時停止播放音樂)
?3.個人覺得拖動滑動條改變音量不用放在Update函數(shù)中,通過下圖的值改變時調(diào)用方法就可
代碼如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Audio;
public class volumeControl : MonoBehaviour
{
? ? public AudioSource BGM;
? ? public AudioMixer BGMMixer;
? ? public Slider VolumeControl;
? ? public Text VolunmePer;
?
? ? public void SetVolume()
? ? {
? ? ? ? BGMMixer.SetFloat("BGM",VolumeControl.value);//將變量BGM的值設(shè)置為滑動條的值
? ? ? ? var per = 100*((VolumeControl.value + 10) / 20);//因?yàn)檫@里滑動條最小值為-10,最大值為10,顯示百分比時就用這個公式計算
? ? ? ? VolunmePer.text = per.ToString("f0") + "%";//保留整數(shù)部分,顯示音量百分比文章來源:http://www.zghlxwxcb.cn/news/detail-423966.html
? ? ? ? if (per.ToString("f0") == "0") //若音量百分比為0就停止播放,否則繼續(xù)
? ? ? ? {
? ? ? ? ? ? BGM.Pause();
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? BGM.UnPause();
? ? ? ? }
? ? ? ? Debug.Log("此時音量值為:" + per + "%");
? ? }
? ?
}
?文章來源地址http://www.zghlxwxcb.cn/news/detail-423966.html
到了這里,關(guān)于Unity使用滑動條Slider控制AudioSource音量,音量不能及時改變的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!