我如何让音频源播放,然后当完成播放器检测器销毁



你好,我在Unity中有一个2d Platformer,我有一个带有盒子碰撞器的精灵,它可以检测它是否与播放器接触,当它接触时,它应该播放音频源,当音频源完成时暂停它,它应该恢复时间并摧毁检测器。我试过枚举器,但它不会暂停时间,检测器也不会停止工作。

这是代码:

public AudioSource UFOTALK1;
public GameObject player;
public BoxCollider2D sp;
bool used = false;
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Player"))
{
if (!used)
{
waiter();
UFOTALK1.Play();
used = true;
}
else
{
}


}
}

void PauseGame()
{
player.GetComponent<PlayerMovement>().enabled = false;
}
void ResumeGame()
{
player.GetComponent<PlayerMovement>().enabled = true;
}
IEnumerator waiter()
{
PauseGame();


yield return new WaitForSeconds(7.392f);
sp.enabled = false;
ResumeGame();


}

}

您必须使用StartCoroutine运行例程

private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Player"))
{
if (!used)
{
StartCoroutine (waiter());
UFOTALK1.Play();
used = true;
}   
}
}

实际上,为了不必硬编码,您可以直接等待,直到完整的音频剪辑使用完成

yield return new WaitForSeconds (UFOTALK.clip.length);

相关内容

  • 没有找到相关文章

最新更新