Unity中的声音(声音开关+动画事件播放声音+控制声音大小UI)
Unity中的声音
声音组件(一个scene中只能有一个Audio Listener,位于Camera)
Audio Source 理解为 “嘴巴”
Unity中支持的音频格式
声音开关
效果:点击背景音乐暂停,再点击音乐继续。
步骤
(1)创建UI—Toggle(切换)
与图片上对应:
Label 文字
Background 白色框框
Checkmark 黑色的勾
(可以根据自己的UI样式调整Background和Checkmark的Sprite,实现自己的效果)
比如我自己使用:
Background
Checkmark
这样可以实现(颜色不会变哦,图片是录屏的原因)
(2)在Toggle组件上添加Audio Source组件,在Audio Clip中拖入要加的音乐片段,其他属性开自己要求。
(3)创建一个空对象,命名为music,创建一个脚本,命名MusicToggle挂载上面
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MusicToggle : MonoBehaviour
{
public Toggle toggelMusic;
public AudioSource audio;
public void ToggleMusicThing()
{
if (toggelMusic.isOn == true)
{
audio.mute =false;
}
else if (toggelMusic.isOn == false)
{
audio.mute=true;
}
}
}
将Toggle拖到脚本中,两个都是,因为Audio Source组件也在Toggle里面
(4)回到Toggle中
先点击“+”号,将music拖到Runtime下方的框中
然后点击Runtime右边的框,找到函数
这样就可以了。
动画事件播放声音
比较适合在Unity中制作动画时使用
(1)先制作好动画,在挂载动画的物体上挂载组件Audio Source。
注意:不要勾选“在唤醒时播放”
(2)创建一个脚本,挂载到该物体上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayWater : MonoBehaviour
{
public void Playwater()
{
// Debug.Log("okkkkkkkk");
AudioSource audio = GetComponent<AudioSource>();
audio.Play();
}
}
(3)打开动画片段,选择动画上要添加事件的帧数
点击“添加事件”
(3)点击刚添加的事件,在“检查器”窗口点击如下图,选择上面写的函数
这样就实现了在动画事件播放声音。
控制声音大小Slider
(1)创建一个空物体命名gameVoice,加上AudioSource组件,将声音Clip拖进去,打开Play On Wake和Loop,将Volume设置为1。
(2)创建一个Slider,命名为voiceSlider,将属性value设置为1
(3)创建一个脚本BackMusicControl,将脚本挂到gameVoice。
代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BackMusicControl : MonoBehaviour
{
public Slider slider;
public AudioSource backMusic;
public void ControlMusic()
{
backMusic.volume = slider.value;
}
}
将voiceSlider和gameVoice挂到上面
(4)在voiceSlider中点击添加事件,将gameVoice弱到坐下放格子,在右边格子点击,找到刚才写的脚本和其中的函数。
如有问题,欢迎留言 ヽ(✿゚▽゚)ノ