[Unity3D] 通過判斷遊戲物體物件的ActiveInHierarchy狀態切換背景音樂
阿新 • • 發佈:2020-09-07
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 publicAudioClip[] 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 }