我创建了一个带有音频源的对象,可播放超过10个场景(使用DontDestroyOnLoad)。在那个场景之后我想停止音乐。有人可以帮我吗?谢谢!
答案 0 :(得分:1)
如果我上面评论中的想法是正确的,你可以这样做(在具有AudioSource的对象的脚本中):
if (Application.loadedLevel == 11){ /*11 is an example*/
GetComponent<AudioSource>().Stop();
}
答案 1 :(得分:0)
您可以创建单身类,并在任何课程中播放或停止。 为声音管理器创建游戏对象,并在gameObject上使用此脚本。
using UnityEngine;
using System.Collections;
public class SoundManager : MonoBehaviour
{
public AudioSource musicSource;
public static SoundManager instance = null;
void Awake()
{
if (instance == null)
instance = this;
else if (instance != this)
Destroy (gameObject);
DontDestroyOnLoad (gameObject);
}
public void PlayMusic(AudioClip clip)//We don't need Play for your problem.
{
musicSource.clip = clip;
musicSource.Play ();
}
public void StopMusic(AudioClip clip)
{
musicSource.clip = clip;
musicSource.Stop ();
}
}
例如;
using UnityEngine;
using System.Collections;
public class GameManager : MonoBehaviour
{
public AudioClip mainTheme;
public void NextLevel(int level)
{
Application.LoadLevel (level);
if (level > 10)
SoundManager.instance.StopMusic (mainTheme);
}
}