我正在嘗試制作開關音樂的腳本,但由于某些原因,數值沒有變化,我做錯了什么?
[SerializeField] Toggle toggle。
[SerializeField] AudioSource音頻源。
public int Music;
private void Update()
{
Music = PlayerPrefs.GetInt("Music"/span>)。
if (Music == 0) audioSource.enabled = false;
else if (Music == 1) audioSource.enabled = true;
PlayerPrefs.SetInt("Music", Music)。
MakeTextRed()。
}
public void MakeTextRed()。
{
if (toggle.isOn == true) Music = 1;
else if (toggle.isOn == false) Music = 0;
}
當我玩游戲并點擊切換按鈕時,音樂值在檢查器中沒有變化。
uj5u.com熱心網友回復:
我不確定你的代碼是錯的還是真的。你可以用這個簡單的代碼來代替int或其他的代碼
[] Toggle toggle。
[] AudioSource音頻源。
private void Update(){
// CheckToggler();{
//更簡單的一個是
audioSource.enabled = toggle.isOn。
}
private void CheckToggler(){
if (toggle.isOn) / On
audioSource.enabled = true;
else //off
audioSource.enabled = false;
}
uj5u.com熱心網友回復:
你的邏輯是不正確的,這就是原因。 常見的做法是用Visual Studio啟動一個除錯會話。它將顯示你試圖設定的一個值。
你的邏輯是不正確的。
private void Update()
{
Music = PlayerPrefs.GetInt("Music"); //從Prefs中讀取值。
if (Music == 0) audioSource.enabled = false;
else if (Music == 1) audioSource.enabled = true;
PlayerPrefs.SetInt("Music", Music); //設定Prefs的值(是一樣的)。
MakeTextRed(); //這必須高一線。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/312680.html
標籤:
