淡入第一级,点击

晚上好,我要把头发拉出来,因为我弄不清楚为什么我一直在听这个错误。 问题是这样的,我需要玩家点击开始button,然后,屏幕将褪色到黑色和负载水平1.(逻辑和代码由Brackeys教程( https://www.youtube.com/看?v = 0HwZQt94uHQ ),真棒家伙)

这里是button的代码。

public void OnPointerClick(PointerEventData eventData) { float fadetime = GameObject.Find("_GM").GetComponent<FadeScreen>().BeginFade(1); yield return new WaitForSeconds(fadetime); SceneManager.LoadScene("Level_01"); } 

现在错误在OnPointerClick下方的“public void”后面用红线突出显示。

错误是 – “StartGame.OnPointerClick(PointerEventData)”的主体不能是迭代器块,因为“void”不是迭代器接口types。 我现在一直在用googlesearch四个小时左右,而且空白了(缺less睡眠可能会导致我错过某些东西)

请有人指出我不能看到自己? 如果之前有人问我,我也很抱歉,我没有find任何关于这个问题。 非常感谢你。

yield return new WaitForSeconds(time)构造只在协程中有效 。

协程必须以StartCoroutine(name)方法启动,并且必须是一个返回IEnumerator的方法。

所以首先你需要编写你的协同程序作为一个新的方法:

 IEnumerator FadeToNextLevel() { float fadetime = GameObject.Find("_GM").GetComponent<FadeScreen>().BeginFade(1); yield return new WaitForSeconds(fadetime); SceneManager.LoadScene("Level_01"); } 

然后你需要从你的button处理程序的方法启动协程:

 public void OnPointerClick(PointerEventData eventData) { StartCoroutine("FadeToNextLevel"); }