unity如何解决协程开启频繁导致的程序卡顿

这篇具有很好参考价值的文章主要介绍了unity如何解决协程开启频繁导致的程序卡顿。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity如何解决协程开启频繁导致的程序卡顿

一、协程

协程并不会在Unity中开辟新的线程来执行,其执行仍然发生在主线程中。当我们有较为耗时的操作时,可以将该操作分散到几帧或者几秒内完成,而不用在一帧内等这个操作完成后再执行其他操作。

二、协程开启频繁

unity中协程在start前需要判断其是否开启了,否则协程会不断叠加

三、解决方式

解决方式一:
协程start前需要判断是否协程开启了,开启的停止进行重新开启:
即:开启协程前,将之前已经开启的给关闭。
private Coroutine coroutine_setReConnect;
if (coroutine_setReConnect != null)
{
StopCoroutine(coroutine_setReConnect);
coroutine_setReConnect = null;
}
coroutine_setReConnect = StartCoroutine(IE_SetReConnect());

解决方式二:
自己定义一个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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【需求】微信小程序getAccessToken接口调用过于频繁,导致超过每日限制,不能再次获取

    微信API文档上有讲:①getAccessToken接口生成的access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效②每天有调用次数限制,据说是2000次,具体多少就不知道了。本需求需要保证每天能正常获取和使用getAccessToken。 1.1 联调微信小程序的getA

    2024年02月16日
    浏览(43)
  • vue数据太多导致页面卡顿解决办法

    需求:查询统计表格页面操作卡顿迟缓 原因:查询一天内某个接口每分钟调用量,由于一次返回几百列数据(60*24),并且不做分页,加载过多数据之后,造成页面卡顿,操作延迟 解决办法: 1.和后端沟通进行页面分页加载(本次需求列数过多,不适用) 2.使用umy-ui库中的表

    2024年02月08日
    浏览(25)
  • 【Android】 频繁刷新 RecyclerView导致View 对象引用过多引起的Native 内存占用过大解决办法

    在 RecyclerView 中,如果频繁刷新 RecyclerView,可能会导致 Native 内存中有大量的 TextView 对象,从而导致内存占用过多的问题。以下是一些可能导致该问题的原因和解决方法: 使用 ViewHolder 在 RecyclerView 中,使用 ViewHolder 可以避免频繁创建和销毁 View 对象,从而减少内存占用。可

    2024年02月08日
    浏览(47)
  • 外星人控制中心(AWCC)出现错误日志导致电脑卡顿的解决建议

    我的设备是一台19年的戴尔G3 3590,在更新了最新的AWCC之后电脑出现随机卡顿,于是开始尝试解决问题,最后在戴尔支持技术人员的帮助下解决了卡顿问题,AWCC正常工作,G模式也能正常开启。以下是一些解决建议。 按照戴尔支持技术人员的说法,戴尔针对新版本的AWCC导致电

    2024年02月11日
    浏览(151)
  • ubuntu22.04 ibus导致键盘延时卡顿解决; ibus终端光标消失

    正常安装ubuntu22.04几天内,貌似安装过什么特别的软件,忘记了,获得现象每隔N时间(大约10分钟不到)键盘打字延时超出5秒,做两次重启ibus: ibus-daemon -r -d -x 可以再获得N时间的正常,但这是治标不治本。 解决办法是重装ibus: 参考: https://segmentfault.com/a/1190000008063732 ibus拼音

    2024年04月11日
    浏览(23)
  • 视频cdn加速1分钟解决视频播放卡顿问题,开启视频秒播时代!

    1.什么是内容分发网络(cdn)? 内容分发网络(Content Delivery Network),是在现有 Internet 中增加的一层新的网络架构,由遍布全国的高性能加速节点构成。这些高性能的服务节点都会按照一定的缓存策略存储您的业务内容,当您的用户向您的某一业务内容发起请求时,请求会被

    2024年01月19日
    浏览(32)
  • 关闭Microsoft Compatibility Telemetry服务解决VScode CPU内存占用过高导致电脑卡顿(实测有效)

    解决方法: 关闭Microsoft Compatibility Telemetry服务。 Microsoft Compatibility Telemetry是微软下的一个监测数据收集服务,如果加入Microsoft客户反馈改善计划,该服务就会在监测系统异常并收集反馈到微软,禁用Microsoft Compatibility Telemetry任务计划即可解决问题。 1、打开开始菜单,找到

    2024年02月11日
    浏览(30)
  • Unity使用对象池来解决子弹的频繁生成和销毁

    降低频繁生成和销毁对象的性能消耗,实现对象的反复使用。一般用于生成和销毁比较频繁的对象,比如:子弹,开火特效,爆炸特效等。 两面墙壁加地板,还有一炮台 对象池 池子的数据结构 字典对象名,List对象类型 a. 需要用到对象的时候(拿) (1). 先去池子看看有没有我

    2023年04月10日
    浏览(23)
  • Unity 如何使用协程等待加载完成

    今天在项目打包后遇到一个bug 项目在电脑上跑没问题,但是在手机端时,由于手机较差的性能,导致异步加载的资源需要等待较长的时间. 而我在一个地方本以为是同步加载的资源,但是在调用时发现本该被加载完成的资源加载失败, 大佬查看过底层实现后给出结论:这个资源使用了

    2024年02月16日
    浏览(36)
  • unity协程 Start/StopCoroutine() 结束协程和再次启动协程存在的问题和解决方案

    仅用于记录遇到的问题和解决方案。 快速阅览: 一、结束协程无效: 协程方法需要单独存一份private IEnumerator myTest,再开始和结束不直接传入方法名,而是使用这份保存的myTest进行开始和结束。 二、再次开启协程时少跑了几行代码: 再次开始同一个方法名的协程时,不是从

    2024年02月15日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包