Unity音频控制(暂停停止播放)
Posted Akuyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity音频控制(暂停停止播放)相关的知识,希望对你有一定的参考价值。
Audiosource组件
在摄像头的属性面板中的Audio Listener,如果开启3D音效声音大小是相对于摄像机而言的。
所有游戏设计中都可以使用此方法
设置音乐、音效相关内容步骤:
(1)创建一个空物体Empty命名为Audio
(2)将Audio拖拽至MainCamera上,并且将Audio的坐标改为(0,0,0)
(3)拷入相关的音效
(4)将音效拖拽至Audio物体的Audio Source属性中的AudioClip上
注:勾选了Play On Awake时表明从开始就播放音乐(在没有代码干预的情况下)
Loop则是指循环的意思
(5)音量调节在属性面板的Volume中进行更改。
(6)创建脚本AudioOrange (防止名字重复)完成脚本内容
脚本代码即解析如下:
public class AudioOrange : MonoBehaviour
AudioSource Orange;//获取AudioOrange组件
public AudioClip audio1;
public AudioClip auido2;//申请两个变量来为点击使释放不同的音效
void Start()
Orange = transform.GetComponent<AudioSource>();//完成组件的获取,为AudioOrange赋值
当变量名相同是可以将它们重叠在一起
比如,可将代码改为:public AudioClip audio1,audio2;这样可以节省空间
(7)完成了音乐的放置,现在要将相关音效播放出来,完成代码如下:
void Update()
if (Input.GetKeyDown(KeyCode.Q)) //在这里进行一个Input,如果按下Q键时,调用Audio11方法
Audio11();//调用第一个方法
if (Input.GetKeyDown(KeyCode.E)) //在这里进行一个Input,如果按下E键时,播放第一个声音
Audio22();//调用第一个方法
void Audio11()//防止名字相冲突
Orange.clip = audio1;//让Audio11这个方法等于预先设定好的Audio1
Orange.Play();
void Audio22()//防止名字相冲突
Orange.clip = audio2;//让Audio11这个方法等于预先设定好的Audio1
Orange.Play();
(8)取消AudioClip中的音乐和Loop以及从开始就播放(上方备注)
完整代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AudioOrange : MonoBehaviour
AudioSource Orange;//获取AudioOrange组件
public AudioClip audio1;
public AudioClip audio2;//申请两个变量来为点击使释放不同的音效
void Start()
Orange = transform.GetComponent<AudioSource>();//完成组件的获取,为AudioOrange赋值
void Update()
if (Input.GetKeyDown(KeyCode.Q)) //在这里进行一个Input,如果按下Q键时,调用Audio11方法
Audio11();//调用第一个方法
if (Input.GetKeyDown(KeyCode.E)) //在这里进行一个Input,如果按下E键时,播放第一个声音
Audio22();//调用第一个方法
void Audio11()//防止名字相冲突
Orange.clip = audio1;//让Audio11这个方法等于预先设定好的Audio1
Orange.Play();
void Audio22()//防止名字相冲突
Orange.clip = audio2;//让Audio11这个方法等于预先设定好的Audio1
Orange.Play();
播放停止暂停
(1)创建一个新的脚本AudioApple,第一仍然是获取Orange组件再进行赋值。
代码如下:
public class AudioApple : MonoBehaviour
AudioSource Orange;//获取AudioOrange组件
void Start()
Orange = transform.GetComponent<AudioSource>();//对Orange组件进行赋值
(2)将需要的音效重新拖拽至AudioClip中,并且勾选Play On Awake和Loop
完整代码展示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AudioApple : MonoBehaviour
AudioSource Orange;//获取AudioOrange组件
void Start()
Orange = transform.GetComponent<AudioSource>();//对Orange组件进行赋值
void Update()
if (Input.GetKeyDown(KeyCode.R))
Orange.Stop();//当按下R键,音乐停止,点击U时重头开始播放音乐
if (Input.GetKeyDown(KeyCode.T))
Orange.Pause();//当按下T键,音乐暂停
if (Input.GetKeyDown(KeyCode.U))
Orange.Play();//当按下U键,音乐继续播放
注明:所有音乐文档需要放到属性面板中合适的位置。
————————————————
版权声明:本文为CSDN博主「qq_42610450」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42610450/article/details/106899662
以上是关于Unity音频控制(暂停停止播放)的主要内容,如果未能解决你的问题,请参考以下文章
unity 音乐怎么用代码控制,我在主相机上加了audio source原来有audio listener的,没法暂停和停止