using UnityEngine; using UnityEngine.UI; public class StopBGMButton : MonoBehaviour { public GameObject bgmController; void Start() { Button btn = GetComponent<Button>(); if (btn == null) { Debug.LogError("Failed to get Button component."); return; } btn.onClick.AddListener(StopBGM); } void StopBGM() { bgmController.GetComponent<AudioSource>().Stop(); } }
时间: 2024-01-22 22:02:07 浏览: 120
Unity UnityEngine.UI 源码工程
这段代码看起来已经很完整了,它的作用是在点击按钮时停止背景音乐。
不过,为了避免可能出现的 NullReferenceException 异常,您可以在 `StopBGM()` 方法中添加一些错误检查代码,以确保 `bgmController` 对象存在并且具有 `AudioSource` 组件。例如,可以像下面这样修改 `StopBGM()` 方法:
```
void StopBGM()
{
if (bgmController == null)
{
Debug.LogError("bgmController is null.");
return;
}
AudioSource audioSource = bgmController.GetComponent<AudioSource>();
if (audioSource == null)
{
Debug.LogError("Failed to get AudioSource component.");
return;
}
audioSource.Stop();
}
```
这样,如果 `bgmController` 对象为 null 或者没有 `AudioSource` 组件,您将看到一条错误消息,并且 `audioSource.Stop()` 方法将不会被执行。
阅读全文