个人遇到的一个问题:
滑动条Slider控制AudioSource音量,虽然音源大小确实和滑动条值同步改变,但是实际音量并未同步改变,只有当我关闭UI界面时,音量才会发生改变。
这个问题我试了好久没有解决,所以干脆换一种思路,通过滑动条控制AudioMixer控制音量大小
使用AudioMixer需要注意的地方:
1.需要右键暴露参数(Expose Parameters),并在音频混合器选项卡中右键重命名参数,以便在代码中调用
2.滑动条的最大值和最小值需要与AudioMixer中的值域匹配,值域如下图。
我一般最小值设置为-20,最大值为20。(需要注意的是,这样就算滑动条拉到最小值也不会停止播放音乐,所以我加了一个判断语句和公共AudioSource变量,当滑动条拉到最小值时停止播放音乐)
3.个人觉得拖动滑动条改变音量不用放在Update函数中,通过下图的值改变时调用方法就可
代码如下:
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的值设置为滑动条的值
var per = 100*((VolumeControl.value + 10) / 20);//因为这里滑动条最小值为-10,最大值为10,显示百分比时就用这个公式计算
VolunmePer.text = per.ToString("f0") + "%";//保留整数部分,显示音量百分比文章来源:https://www.toymoban.com/news/detail-423966.html
if (per.ToString("f0") == "0") //若音量百分比为0就停止播放,否则继续
{
BGM.Pause();
}
else
{
BGM.UnPause();
}
Debug.Log("此时音量值为:" + per + "%");
}
}
文章来源地址https://www.toymoban.com/news/detail-423966.html
到了这里,关于Unity使用滑动条Slider控制AudioSource音量,音量不能及时改变的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!