Unity如何控制声音大小(包括静音功能)

news/2024/11/19 20:45:42/

一:UGUI制作

1. 首先在【层级】下面创建UI里面的Slider组件。设置好它对应的宽度和高度。

b7a97e0944c746369ad0f9ad0640492e.png

 2.调整Slider滑动条的填充颜色。一般声音颜色我黄色,所以我们也调成黄色。

a6ac7a900f6d479a8c98f417ea134add.png

我们尝试滑动Slider里面的value。

9c6a87d481064bb3affbfe3bae2bb0df.png

a.滑动前。

ac1bba4e9b034fffb638a7908c844310.png

b.滑动一半。

 46a46cad5ab94f9c9607018048fe7c1d.png

c.滑动完。

 0b27484fa4db4a6582cfa33a97104396.png

 从以上滑动value值我们可以知道,是通过value值来控制我们填充的效果。制作血条也是类似情况,看具体干什么用的,我们制作滑动控制音量条,所以我们需要先获取声音。

三:创建空物体挂载声音

我们创建一个空物体取名BGM,然后添加AudioSource声音源组件,在组件中添加需要控制声音的大小。

046c3c6373a04cf3b517fa4b7756b947.png

此刻我们已经挂载在需要被控制的声音,然后我们创建脚本来实现声音大小跟随Slider组件里面的Value值变化而变化。

 四:代码实现控制声音大小

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class BGM : MonoBehaviour
{// Start is called before the first frame update//声音控制器public Slider AudioSlider;//声音控制器文本public Text AudioText;//音乐public AudioSource BGMsource;void Start(){//默认一开始声音为0.6AudioSlider.value = 0.6f;}//控制声音大小方法public void AudioCtrl(){//把value的值赋值给 BGMsource.volume BGMsource.volume = AudioSlider.value;//文本显示当前声音大小AudioText.text = AudioSlider.value.ToString();}}

五:回到Unity引擎

1.为了能够明显看到出来,我们上面做的更细致,添加了一个文本显示声音大小的情况。

所以我们需要在Unity里面创建一个Text文本,设置好Text文本的大小。

71b4dfcb62934049858b0d8b166def3a.png

 2.挂载组件和对象

613aeb8693864ea7bfd86cbafd8f1ec5.png

 8e3f5456041547079dd954a8e19752ef.png

3.运行

a.默认声音为0.6 

d3842fac90634f7c8aeb2f0fb0777a60.png

b.在游戏场景滑动Slider组件,对应的声音音量值会发生对应的变化。

16d5ae9c30c546498c00cfa82ec611af.png

 制作声音控制器我们应该还有一个按钮,勾选它就有声音,禁用它声音就没了。接下来我们来实现一下。

六:声音控制器开关

1.创建Toggle组件

b33dd35b5b934c5f8c15e43b6f15ef03.png

 2.添加对应的组件到代码中

完善后:以下为整体代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class BGM : MonoBehaviour
{// Start is called before the first frame update//声音控制器public Slider AudioSlider;//声音控制器文本public Text AudioText;//声音开关public Toggle AudioSwitchToggle;//音乐public AudioSource BGMsource;void Start(){//默认一开始声音为0.6AudioSlider.value = 0.6f;}//控制声音大小方法public void AudioCtrl(){//把value的值赋值给 BGMsource.volume BGMsource.volume = AudioSlider.value;//文本显示当前声音大小AudioText.text = AudioSlider.value.ToString();}//控制声音开关public void AudioSwitchToggleCtrl(){//如果声音控制按钮勾选了,那么我们就有声音if (AudioSwitchToggle.isOn){//激活声音对象为自动播放BGMsource.gameObject.SetActive(true);//调用移动滑块控制声音大小AudioCtrl();}else{//关闭声音对象BGMsource.gameObject.SetActive(false);}}
}

3.挂载tgoole对象和添加方法

9e50fd48feb34546b6139bb3fc89cdfa.png

3fa3cb43b6d14787b548f0867bb9855f.png

七:运行效果图

1:运行时

3aeb4fc0b6d14a18a635e84b51575fdd.png

 2:点击toggle按钮后

aa466dcfc7a0463eb0c7edea1303b1fe.png

到这里我们运行利用让我们可以看到BGM对象直接被禁用了,在运行时也听不到声音。 

所以已经实现了勾选来打开声音,不勾选可以禁止声音的效果。

补充一点:  如果我们需要让声音一直播放,我们可以勾选AudioSource组件上的Loop设置为循环播放,勾选后可以让声音一直循环播放。一般我们使用Unity制作过程中声音是必不可少的。


最后

以上步骤就是制作声音开关控制器和声音滑动条控制声音大小整个流程。

看到的小伙伴一键三连一下吧,你们的支持让我更有动力去创作和分享,希望能一直为你带来惊喜和收获。

2413988ad82470fe49997fa97ee1adf8.png
一键三连吧!


http://www.ppmy.cn/news/1039191.html

相关文章

Blazor前后端框架Known-V1.2.12

V1.2.12 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。 Gitee: https://gitee.com/known/KnownGithub:https://github.com/known/Known 概述 基于C#和Blazo…

1 树 1.1 树的基本概念 1.1.1 什么是树? 树是n(n > 0)个结点的有限集。当n 0时,称为空树。在任意一颗非空树上应该满足: 有且仅有一个特定的称为根的结点当n>1时,其余结点可分为m(m>0)个互不相…

内网穿透——使用Windows自带的网站程序建立网站

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如…

关于git执行提交报错问题

1.在执行git中 执行git init 执行 git add . 执行git commit -m “first commit” 时会出现 git config --global user.email "youexample.com" git config --global user.name "username" 这个问题是由于在git中没有设置默认的user跟emali导致需要手…

对接海康门禁设备-初始化SDK和登录设备

对接海康门禁设备,初始化SDK /*** author czm* date 2023/2/15*/ public interface HCNetSDK extends Library {public static HCNetSDK getInstance(String sdkPath) { // sdkPath sdk 目录路径System.out.println("sdk_path " sdkPath);HCNetSDK …

shell连接ubuntu

当使用aws的私钥连接时,老是弹出输入私钥密码,但是根本没有设置过密码,随便输入后,又提示该私钥无密码... 很早就使用过aws的ubuntu,这个问题也很早就遇到过,但是每次遇到都要各种找找找...索性这次记下来算了 此处用FinalShell连接为例 首先现在Putty连接工具: 点击官方下载 …

嵌入式 - 知识随记

嵌入式 - 知识随记 IO口/寄存器/CPU IO口/寄存器/CPU IO口电平和寄存器之间的交互可以通过以下步骤进行:输出数据到IO口:当CPU需要向外部设备输出数据时,它会将数据写入指定的寄存器。这个寄存器通常称为输出寄存器或数据寄存器。CPU将要输出…

C++ auto关键字

文章目录 一、auto的推导规则二、auto的限制 C11 中有:auto 类型推导 auto x 5; // OK: x 是 int 类型 auto pi new auto(1); // OK: pi 被推导为 int* const auto *v &x, u 6; // OK: v是const int*类型,u是const int类型 static auto y 0.0;…