【发布时间】:2019-06-10 15:57:13
【问题描述】:
我正在制作一个带有迷宫的游戏,并带有关于要走什么路的音频提示。我在协程上播放声音,它只启动一次。但是,我需要做的是能够通过触发器从另一个脚本中阻止它,以便在播放器通过某个点时音频不会继续播放。这是我目前的代码。
public AudioSource direction;
private bool running = false;
IEnumerator AudioPlay()
{
while (true)
{
direction.Play();
yield return new WaitForSeconds(2);
}
}
void OnTriggerEnter(Collider col)
{
if (col.gameObject.CompareTag("Player"))
{
if (running == false)
{
StartCoroutine(AudioPlay());
Debug.Log("Started");
running = true;
}
else if (running == true)
{
Debug.Log("Void");
}
}
}
【问题讨论】:
-
试过
StopCoroutine(AudioPlay())? -
您可以在主脚本中添加一个函数来停止协程,然后从其他脚本中调用它。