我在搞弄Unity任务,我创建了一个“损坏链”,如果我损坏得足够快,则损坏链会增加。
然后,当损害链变得足够高时,我想从背景音乐切换到Metallica的“ Enter Sandman”。
但是,当我将“ Enter Sandman” MP3添加到层次结构中的“背景”音乐对象时,我必须添加另一个具有相同名称的“音频源”(即“音频源”)。
然后,当我尝试在代码中对其进行管理时,我不能像其他任何地方一样仅运行GetComponent<AudioClip>
。
如何在脚本中的两首歌曲之间切换?这是我的对象设置的图片,然后是代码...
而且,我的代码(按原样)是SongManager:
using UnityEngine;
using System.Collections;
public class SongManager : MonoBehaviour {
AudioSource regular_music;
AudioSource high_dmg_music;
// Use this for initialization
void Start () {
regular_music = GetComponent<AudioSource> ();
high_dmg_music = GetComponent<AudioSource> ();
regular_music.loop = true;
regular_music.Play ();
high_dmg_music.loop = false;
high_dmg_music.Stop ();
}
// Update is called once per frame
void Update () {
if (DamageManager.dmg_chain > 1500) {
regular_music.loop = false;
high_dmg_music.loop = true;
high_dmg_music.Play ();
} else {
if (high_dmg_music.isPlaying) {
high_dmg_music.loop = false;
high_dmg_music.Stop ();
regular_music.loop = true;
regular_music.Play ();
}
}
}
}
显然,该代码不起作用,但是我还是完成了它。
我将如何实施此配置?
最佳答案
仅创建一个AudioSource
。创建许多AudioClips
,然后将要播放的每个AudioClip
重新分配给AudioSource
。将声音拖到AudioClip
插槽。
public AudioClip background_music;
public AudioClip sandman_music;
private AudioSource audioSource;
Void Start()
{
audioSource = GetComponent<AudioSource>();
//To play backround sound
if (audioSource.isPlaying)
{
audioSource.Stop();
}
audioSource.clip = background_music;
audioSource.Play();
//To play sandman sound
if (audioSource.isPlaying)
{
audioSource.Stop();
}
audioSource.clip = sandman_music;
audioSource.Play();
}
关于c# - Unity:Survival Shooter教程:如何在两首背景歌曲之间切换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37378553/