我發布的代碼只是我嘗試過的方法之一。無論出于何種原因,我都無法像使用其他公共變數那樣讓腳本訪問回圈值。我唯一可以補充的是,試圖改變值的聲音是在另一個腳本的 OnAwake() 方法中創建的。
public static void PlaySound(Sound sound, Vector3 position)
{
if (CanPlaySound(sound))
{
GameObject soundGameObject = new GameObject("Sound");
soundGameObject.transform.position = position;
AudioSource audioSource = soundGameObject.AddComponent<AudioSource>();
audioSource.clip = GetAudioClip(sound);
Debug.Log(soundGameObject.GetComponent<AudioSource>().clip);
if (audioSource.clip.Equals("Level 1 Music"))
{
soundGameObject.GetComponent<AudioSource>().loop = true;
}
audioSource.Play();
Object.Destroy(soundGameObject, audioSource.clip.length);
}
}
uj5u.com熱心網友回復:
是因為你的條件。equals 選項實際上是按剪輯來衡量剪輯,而不是按剪輯名稱來衡量剪輯。試試這個選項來解決問題:
if (audioSource.clip.name.Equals("Level 1 Music"))
{
audioSource.loop = true;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483841.html
上一篇:如何修復布林值?