当前位置: 首页 > news >正文

东莞专业设计网站seo基础入门

东莞专业设计网站,seo基础入门,typecho to wordpress,如何做盆栽蔬菜网站文章目录 前言封装协程工具类#xff0c;避免 GC#xff08;垃圾回收#xff09;使用1.使用默认方式使用协程2.使用自定义的 CoroutineTool 工具类来等待不同的时间 完结 前言 在 Unity 中#xff0c;使用 yield return null 、yield return new WaitForEndOfFrame()等会导… 文章目录 前言封装协程工具类避免 GC垃圾回收使用1.使用默认方式使用协程2.使用自定义的 CoroutineTool 工具类来等待不同的时间 完结 前言 在 Unity 中使用 yield return null 、yield return new WaitForEndOfFrame()等会导致 GC垃圾回收开销。 yield return null: 每次调用这个语句Unity 会创建一个新的迭代器状态机。当你执行协程时如果你在协程中使用 yield return null它会生成一个新的迭代器这样会产生额外的内存分配。 new WaitForEndOfFrame(): 每次使用 new WaitForEndOfFrame() 都会创建一个新的 WaitForEndOfFrame 对象。这种频繁的对象创建会增加内存开销并可能导致 GC 的触发。 但是注意启动协程时会创建一个 Coroutine 对象这本身会导致一次内存分配进而可能引发垃圾回收GC。这是协程在 Unity 中的一个固有特性无法完全避免。但是它还是解决了协程的主要痛点毕竟一个项目启动的协程一般不会很多。如果你在意可以选择使用 UniTask 【推荐100个unity插件之33】比 Unity 自带协程更高效的异步处理方式提供一个高性能和0GC的async/await异步方案——UniTask插件 封装协程工具类避免 GC垃圾回收 提前new好协程所需要的WaitForEndOfFrame、WaitForFixedUpdate、WaitForFrameStruct类的对象,避免GC。 /// summary /// 协程工具类避免 GC垃圾回收 /// /summary public static class CoroutineTool {// 定义一个结构体用于表示等待一帧的状态private struct WaitForFrameStruct : IEnumerator{public object Current null;public bool MoveNext() { return false; } // 一旦调用立即返回 false停止迭代public void Reset() { } // 重置方法不做任何操作}// 预定义的等待结束帧对象避免多次创建private static WaitForEndOfFrame waitForEndOfFrame new WaitForEndOfFrame();// 预定义的等待固定更新对象避免多次创建private static WaitForFixedUpdate waitForFixedUpdate new WaitForFixedUpdate();/// summary/// 获取等待结束帧的对象/// /summarypublic static WaitForEndOfFrame WaitForEndOfFrame(){return waitForEndOfFrame;}/// summary/// 获取等待固定更新的对象/// /summarypublic static WaitForFixedUpdate WaitForFixedUpdate(){return waitForFixedUpdate;}/// summary/// 等待指定时间以秒为单位/// /summary/// param nametime等待的时间/parampublic static IEnumerator WaitForSeconds(float time){float currTime 0;while (currTime time){currTime Time.deltaTime;yield return new WaitForFrameStruct(); // 等待一帧}}/// summary/// 等待指定的实时时间不受时间缩放影响/// /summary/// param nametime等待的时间/parampublic static IEnumerator WaitForSecondsRealtime(float time){float currTime 0; // 当前经过的时间while (currTime time) // 当经过的时间小于指定时间时{currTime Time.unscaledDeltaTime; // 增加经过的时间不受时间缩放影响yield return new WaitForFrameStruct(); // 等待一帧}}/// summary/// 等待指定帧数/// /summary/// param namecount等待的帧数默认为1/parampublic static IEnumerator WaitForFrame(int count 1){for (int i 0; i count; i){yield return new WaitForFrameStruct(); // 等待一帧}} }使用 1.使用默认方式使用协程 IEnumerator DelayedAction() {yield return new WaitForEndOfFrame();// 等待到当前帧的结束即所有渲染操作完成后yield return new WaitForFixedUpdate();// 等待到下一个固定更新适用于物理计算yield return new WaitForSeconds(2.0f); // 等待2秒游戏时间yield return new WaitForSecondsRealtime(2.0f);// 等待2秒现实时间不受游戏时间缩放影响yield return null;// 等待一帧 }2.使用自定义的 CoroutineTool 工具类来等待不同的时间 IEnumerator DelayedAction() {yield return CoroutineTool.WaitForEndOfFrame(); // 等待到当前帧的结束yield return CoroutineTool.WaitForFixedUpdate(); // 等待到下一个固定更新yield return CoroutineTool.WaitForSeconds(2.0f); // 等待2秒游戏时间yield return CoroutineTool.WaitForSecondsRealtime(2.0f); // 等待2秒现实时间不受游戏时间缩放影响yield return CoroutineTool.WaitForFrame(); // 等待一帧yield return CoroutineTool.WaitForFrame(3); // 等待3帧 }完结 赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦 好了我是向宇https://xiangyu.blog.csdn.net 一位在小公司默默奋斗的开发者闲暇之余边学习边记录分享站在巨人的肩膀上通过学习前辈们的经验总是会给我很多帮助和启发如果你遇到任何问题也欢迎你评论私信或者加群找我 虽然有些问题我也不一定会但是我会查阅各方资料争取给出最好的建议希望可以帮助更多想学编程的人共勉~
http://www.w-s-a.com/news/48620/

相关文章:

  • 网站推广效果的评价google关键词
  • 模板网站建站哪家好做微信充值网站
  • 抽奖的网站怎么做的广州小程序定制开发
  • 网站的文件夹建设企业网站公积金
  • 做网站的的价位网站建设 考试题目
  • 深圳比邻网站建设北京优化服务
  • 菏泽网站建设哪家好电子商务网络安全
  • 仿一个网站广州网站建设正规公司
  • 网站建设 目的seo网站关键词排名快速
  • 什么叫做响应式网站自媒体全平台发布
  • 企业网站 案例哪里需要人做钓鱼网站
  • 厚街东莞网站建设网站开发者调试模式
  • 网站推广营销联系方式wordpress adminlte
  • 哪些网站可以做文字链广告卖水果网站建设的策划书
  • 雕刻业务网站怎么做企业qq官网
  • 新华书店的做的数字阅读网站wordpress编辑器格式
  • jq做6个网站做什么好广西临桂建设局网站
  • 网站新闻图片尺寸南京网站设计公司
  • 重庆seo建站网站服务器 安全
  • 咸宁做网站的公司桂林网站建设兼职
  • 教做网站网站开发行业分析
  • 忻州网站建设培训友情链接交换形式有哪些
  • 佛山做外贸网站渠道外贸常用网站
  • 文章收录网站网站及新媒体建设办法
  • 招聘网站排行榜2021找建网站公司
  • 网站建设制作宝塔面板活动宣传推广的形式有哪些
  • 掉关键词网站敏捷软件开发流程
  • 微信小程序格泰网站建设新闻采编与制作专业简历
  • 电子商城建设网站海伦网站建设
  • 南充能够建设网站的公司有专门做设计的一个网站