1. 程式人生 > 實用技巧 >[Unity3D] 通過判斷遊戲物體物件的ActiveInHierarchy狀態切換背景音樂

[Unity3D] 通過判斷遊戲物體物件的ActiveInHierarchy狀態切換背景音樂

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 
 5 public class ChangeBGM : MonoBehaviour
 6 {
 7     /* 音訊元件 */
 8     private AudioSource audioSource;
 9 
10     /* 被判斷物體物件,需手動拖入物件 */
11     public GameObject BGStorePanel;
12 
13     /* 音訊陣列,需手動新增陣列長度及音樂*/
14     public
AudioClip[] BgmList; 15 16 17 void Start() 18 { 19 /* 開始獲取音訊元件,並播放一個音樂 */ 20 audioSource = this.GetComponent<AudioSource>(); 21 audioSource.clip = BgmList[0]; 22 audioSource.Play(); 23 } 24 25 26 void Update() 27 { 28 29 /* 每幀判斷是否正在播放
*/ 30 if (audioSource.isPlaying) { 31 /* 判斷遊戲物體物件的狀態如果是true顯示的 */ 32 if (BGStorePanel.activeInHierarchy == true) { 33 /* 將正在播放的音樂暫停 */ 34 audioSource.Pause(); 35 /* 切換音樂 */ 36 audioSource.clip = BgmList[1
]; 37 /* 可選引數迴圈播放 */ 38 audioSource.loop = false; 39 /* 播放音樂 */ 40 audioSource.Play(); 41 42 } 43 } 44 } 45 }