Unity使用滑动条Slider控制AudioSource音量,音量不能及时改变的问题

个人遇到的一个问题:

      滑动条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") + "%";//保留整数部分,显示音量百分比

        if (per.ToString("f0") == "0") //若音量百分比为0就停止播放,否则继续
        {
            BGM.Pause();
        }
        else
        {
            BGM.UnPause();
        }
        Debug.Log("此时音量值为:" + per + "%");
    }
   
}
 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity圆形滑动是一种用户界面的控件,它可以以圆的形式展示并允许用户通过拖动滑块来选择一个值。它通常被用在需要用户进行选项选择或数值调整的场景中。 Unity圆形滑动的基本原理是将一个圆形的滑动控件与数值范围关联起来。用户可以通过点击并拖动滑块来选择一个特定的数值,滑块的位置与数值的关联通常以圆心为起点从0到360度的方式来表示。当用户拖动滑块时,可以通过监测滑块的角度或者位置的改变来获取用户的选值,并根据选值进行相应的操作。 实现Unity圆形滑动主要可以通过以下步骤: 1.创建一个圆形的背景作为滑动的底部,可以使用Unity的UI系统或者自定义绘制技术来实现。 2.在底部圆形背景上创建一个滑块,滑块的形状可以是一个小圆点或者其他你想要的形状。 3.实现用户拖动滑块的交互,可以通过监测鼠标或手指的位置变化来判断滑块的移动,并根据滑块的位置计算数值的选择。 4.根据滑块的位置或角度计算数值,可以通过线性映射或者其他的数值转换方法来将滑块的位置映射为一个数值范围内的数值。 5.根据滑块的数值进行相应的操作,例如更新游戏的属性、调整音量或其他与数值相关的操作。 总而言之,Unity圆形滑动是一种实现用户交互和数值选择的控件,通过拖动滑块来选择数值,并根据数值进行相应的操作。可以根据需求进行自定义设计和实现。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值