访问手机版

扫描体验手机版

游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-24:00

    客服QQ

    706393200

    电子邮件

    kninebox@163.com
  • KNINEBOX刀盒APP

    即将上线,敬请期待

  • 扫描二维码

    进入手机版

推荐阅读 更多
最近评论
热门专题

[教程相关] unity的async api和c#的thread有什么区别

[复制链接]
像Unity的Async函数和普通的异步函数有什么区别? 会在什么时候调用?内部使用的是协程吗?
例如我使用Addressables.LoadAssetsAsync,假如我在Update里的第一帧调用了一次,这个时候它会怎么加载?
假如我第三帧又调用了一次 但是这个时候资源还没加载完成 我就添加了一个Completed监听函数 如果在添加的过程中 资源加载好了 不会造成代码逻辑上的错误 吗
例如我进入If(AsyncOperationHandler.isDone)判断后的语句块时 它还没有完成 但是我判断完之后 它加载完成了 这样不会出问题吗?
所以Unity Async函数实现的底层逻辑是什么 我觉得只有协程可以避免这种问题吧所以Unity的Async和它的生命周期有什么关系?
回复

使用道具 举报

精彩评论1

123456868 发表于 7 天前 | 显示全部楼层
他这个异步只是不会阻塞主线程,同步就是直接那一句执行完就加载好,会阻塞主线程,具体加载逻辑肯定是黑盒的,LoadAsync就是把一帧加载完的东西分多帧去加载,你只要调用LoadAsync就会开始加载,大概应该是在每一帧末尾(我也不确定,反正肯定是有个固定的周期节点),每帧加载快慢和ProjectSetting里的一个配置有关系,可以配置加载速率,不过肯定有上限,Addressable没用过,不过AsyncOperationHandler.isDone这个只要为true应该就是肯定加载好了,他函数内部肯定保存的引用加载完才修改的状态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站发布的mod均为免费mod以及本站原创mod,所有作品仅供交流和艺术拍照使用,请勿使用本站捏脸数据拍摄和制作国家法律法规禁止的内容发布到网络。本站捏脸数据及mod不作为商业用途,仅以赞助钻石的形式作为大家对作者手工劳动的认可。

声明:本站部分内容来自网络站点所提供的公开引用资源,作品版权归原作者所有 禁止商用 违者必究。

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc. KNINEBOX