unity如何解决协程开启频繁导致的程序卡顿
一、协程
协程并不会在Unity中开辟新的线程来执行,其执行仍然发生在主线程中。当我们有较为耗时的操作时,可以将该操作分散到几帧或者几秒内完成,而不用在一帧内等这个操作完成后再执行其他操作。
二、协程开启频繁
unity中协程在start前需要判断其是否开启了,否则协程会不断叠加
三、解决方式
解决方式一:
协程start前需要判断是否协程开启了,开启的停止进行重新开启:
即:开启协程前,将之前已经开启的给关闭。
private Coroutine coroutine_setReConnect;
if (coroutine_setReConnect != null)
{
StopCoroutine(coroutine_setReConnect);
coroutine_setReConnect = null;
}
coroutine_setReConnect = StartCoroutine(IE_SetReConnect());文章来源:https://www.toymoban.com/news/detail-484239.html
解决方式二:
自己定义一个bool值进行判断协程是否在执行,如果是在执行无法开启协程
开始时判断这个bool是false才能开启协程
if(!bIsStartCoroutine)
A();
private void A()
{文章来源地址https://www.toymoban.com/news/detail-484239.html
bIsStartCoroutine = true;
StartCoroutine(B() as IEnumerator);
}
private IEnumerator B()
{
yield return null;
bIsStartCoroutine = false;
}
到了这里,关于unity如何解决协程开启频繁导致的程序卡顿的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!