【转载】音乐开关及音量控制

在Component -- Audio下创造一个Audio Source 附于一个GameObject上,加上音乐,把playOnAwake勾去掉,然后将控制脚本附于它,再建一个GUI按钮来调用AudioSwitch()这个函数就OK了。

本帖隐藏的内容需要回复才可以浏览
var myAudio;
myAudio = GetComponent(AudioSource); //获取声音元件
private var scrollVol : float = 0.5; //定义音量控制变量
function AudioSwitch (){
if(!myAudio.playOnAwake) //判断是否开关
{
myAudio.Play();
myAudio.playOnAwake=true;

}
else

{
myAudio.Stop();
myAudio.playOnAwake=false;

}
}
function OnGUI()
{
if(myAudio.playOnAwake)
{
scrollVol = GUI.HorizontalSlider (Rect (150,175,100,20), scrollVol, 0.0, 1.0);
myAudio.volume = scrollVol;
}
}
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 60
    评论
在 Unity 中,你可以使用 Audio Source 组件来控制背景音乐的播放、暂停和音量等属性。如果你想要实现背景音乐开关音量淡入淡出效果,可以按照以下步骤进行操作: 1. 在场景中添加一个空物体,并将其命名为 AudioManager。 2. 在 AudioManager 上添加 Audio Source 组件,并将背景音乐的音频文件拖拽到 Audio Source 的 AudioClip 属性中。 3. 在 AudioManager 上添加一个 C# 脚本,并将其命名为 AudioManager。 4. 在 AudioManager 脚本中添加如下代码: ``` using UnityEngine; public class AudioManager : MonoBehaviour { public static AudioManager instance; private AudioSource audioSource; private void Awake() { if (instance == null) { instance = this; } else { Destroy(gameObject); } audioSource = GetComponent<AudioSource>(); } public void PlayMusic() { audioSource.Play(); } public void StopMusic() { audioSource.Stop(); } public void FadeIn(float fadeTime) { StartCoroutine(FadeInCoroutine(fadeTime)); } public void FadeOut(float fadeTime) { StartCoroutine(FadeOutCoroutine(fadeTime)); } private IEnumerator FadeInCoroutine(float fadeTime) { float targetVolume = audioSource.volume; audioSource.volume = 0f; while (audioSource.volume < targetVolume) { audioSource.volume += Time.deltaTime / fadeTime; yield return null; } audioSource.volume = targetVolume; } private IEnumerator FadeOutCoroutine(float fadeTime) { float startVolume = audioSource.volume; while (audioSource.volume > 0f) { audioSource.volume -= startVolume * Time.deltaTime / fadeTime; yield return null; } audioSource.Stop(); audioSource.volume = startVolume; } } ``` 5. 在你的游戏中的任何地方,例如一个按钮的 OnClick 事件中,调用 AudioManager.instance.PlayMusic() 来播放背景音乐。 6. 当需要暂停背景音乐时,调用 AudioManager.instance.StopMusic()。 7. 当需要淡入背景音乐时,调用 AudioManager.instance.FadeIn(fadeTime),其中 fadeTime 是淡入的时间(单位为秒)。 8. 当需要淡出背景音乐时,调用 AudioManager.instance.FadeOut(fadeTime),其中 fadeTime 是淡出的时间(单位为秒)。 这样,你就可以通过代码来实现背景音乐开关音量淡入淡出效果了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值