1. 程式人生 > >Unity輪流播放背景音樂

Unity輪流播放背景音樂

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 控制所有音樂的管理類
/// </summary>
public class AudioManager : MonoBehaviour
{
    //將要輪流播放的音樂組
    public AudioClip[] audioGroup;

    //當前播放的是誰
    private int playingIndex;

    //是否允許播放音樂
    private bool canPlayAudio;

    //AudioSource元件
    private AudioSource audioSource;

    //-----------------------------------------------------

    void Start()
    {
        audioSource = this.GetComponent<AudioSource>();

        canPlayAudio = true;

        playingIndex = 0;
    }

    //-----------------------------------------------------

    void Update()
    {
        if (canPlayAudio)
        {
            PlayAudio();

            canPlayAudio = false;
        }

        if (!audioSource.isPlaying)
        {
            playingIndex++;

            if (playingIndex >= audioGroup.Length)
            {
                playingIndex = 0;
            }

            canPlayAudio = true;
        }
    }

    //-----------------------------------------------------

    private void PlayAudio()
    {
        audioSource.clip = audioGroup[playingIndex];
        audioSource.Play();
    }

    //-----------------------------------------------------
}