问题:物体A先显示,后使用协程进行关闭,但是无法关闭物体显示,代码如下:
public void MsShow()
{
StartCoroutine(MsClose());
GameA.SetActive(true);
}
IEnumerator MsClose()
{
yield return new WaitForSeconds(0f);
GameA.SetActive(false);
}
原因:应为先执行了协程,所以先执行的是关闭,若等待的时间不为0,则可以显示效果,但是逻辑处理是错误的。先执行显示后执行关闭,这样就不用考虑等待时间的问题,调整代码如下:
public void MsShow()
{
GameA.SetActive(true);
StartCoroutine(MsClose());
}
IEnumerator MsClose()
{
yield return new WaitForSeconds(0f);
GameA.SetActive(false);
}
网友评论