Unity 3D通过脚本控制音频音量、继续、暂停、停止播放;判断当前音乐是否播放;切换音乐;


/// <summary>记录当前所选音乐</summary>
public int mu;
public AudioClip[] musics;//切歌   
void Start()

{
    am = GameObject.Find("MainCamera").GetComponent<AudioSource>();//初始化,找到  am,Audiolistener在Camera上
}
/// <summary>
/// 暂停音乐
/// </summary>
public void pausemusic()
{
    am.Pause();//停止正在播放的声音
}
/// <summary>
/// 继续播放am中的声音
/// </summary>
public void playmusic()
{
    am.Play();
}
/// <summary>
/// 停止播放音乐
/// </summary>
public void stopmusic()
{
    am.Stop();//停止正在播放的声音
}
/// <summary>
/// 调节音量
/// </summary>
/// <param name="v"></param>
public void changevoice(float v)
{
    am.volume = v;
}
/// <summary>
/// 切换音乐
/// </summary>
public void nextmusic()
{
    mu = (mu + 1) % 3;
    am.clip = musics[mu];
    am.Play();
    switch (mu)
    {
        case 0:
            {
                _Musicname.text = "第一首";
            }
            break;
        case 1:
            {
                _Musicname.text = "第二首";
            }
            break;
        case 2:
            {
                _Musicname.text = "第三首";
            }
            break;
        default:
            break;
    }
}
void Update()
{
    if (am.isPlaying)
    {
        Debug.Log("正在播放");
    }
    if (!am.isPlaying)
    {
        Debug.Log("没有播放")
    }
}

演示

在HideInInspector中将三首音乐拖到音乐组中,自定义音乐数量也可以,需要修改代码中切换音乐函数中的部分内容。调用脚本中的函数即可实现对应功能。

重复播放音乐代码如下

am.loop = true;//循环播放音乐

猜你喜欢

转载自blog.csdn.net/qq_52058429/article/details/126201440