我有以下情形在Unity3d
- 含音頻源組件
- 一個關於我們現場
遊戲對象腳本中的遊戲物體主菜單現場:
using UnityEngine;
using System.Collections;
public class ManageMusic : MonoBehaviour {
private static ManageMusic _instance;
public static ManageMusic instance
{
get
{
if(_instance == null)
{
_instance = GameObject.FindObjectOfType<ManageMusic>();
//Tell unity not to destroy this object when loading a new scene!
DontDestroyOnLoad(_instance.gameObject);
}
return _instance;
}
}
void Awake()
{
if(_instance == null)
{
Debug.Log("Null");
//If I am the first instance, make me the Singleton
_instance = this;
DontDestroyOnLoad(this);
}
else
{
//If a Singleton already exists and you find
//another reference in scene, destroy it!
if(this != _instance){
Play();
Debug.Log("IsnotNull");
Destroy(this.gameObject);
}
}
}
public void Update()
{
if (this != _instance) {
_instance=null;
}
}
public void Play()
{
this.gameObject.audio.Play();
}
關於我們Back button script:
using UnityEngine;
using System.Collections;
public class Back_btn:MonoBehaviour void OnMouseDown(){ Application.LoadLevel(「MainMenu」);
}
}
當我點擊關於我們按鈕的Game Music object
再玩了,我可以聽到音樂,但是當我返回到主菜單中沒有音樂仍在播放。我可以看到,當我返回到主菜單和音頻監聽器的音量對象沒有被破壞的音量設置爲1
,但我想不出任何人都可以幫我的問題
沒有代碼工作完全相同的地雷?如果我想測試你的代碼,我應該怎麼做?只需將你的代碼替換掉我的另一個問題,我沒有嘗試你的代碼,但在我的特殊情況下,如果單身人士是在'主菜單'中創建的,它的腳本將保留在'about'場景中,但是當我返回到主菜單是單身持續並繼續玩,否則它會消失或將再次玩? – Sora
我不確定你的'if else'代碼塊是如何工作的,但我敢打賭,它不會像你打算的那樣工作。請繼續閱讀鏈接中的模式。玩這個代碼片段,並嘗試改變它,以便它符合您的需求。該腳本將附加到的遊戲對象只會在遊戲加載時創建,並且在更改場景時不會被刪除,因此音樂會一直播放,直到您停止爲止(如玩家將場景更改爲遊戲玩法並且您告訴那麼腳本只能停止播放)。 – Varaquilex
你能檢查一下我的編輯嗎 – Sora