Unity 2018中使用Async-Await替代 coroutines

Unity技术开发干货 专栏收录该内容
51 篇文章 253 订阅 ¥99.00 ¥19.90

在Unity中使用协程通常是解决某些问题的好方法,但是它也具有某些缺点:

协程不能返回值。这鼓励程序员创建巨大的整体协程方法,而不是用许多较小的方法组成它们。存在一些变通办法,例如将Action <>类型的回调参数传递给协程,或在协程完成后强制转换从协程产生的最终未类型化值,但是这些方法使用起来很麻烦并且容易出错。
协程使错误处理变得困难。您不能将yield放入try-catch中,因此无法处理异常。另外,当确实发生异常时,堆栈跟踪只会告诉您协程在何处抛出了异常,因此您必须猜测可能从哪个协程中调用了该协程。
随着Unity 2017的发布,现在可以代替异步方法使用称为async-await的新C#功能了。与协程相比,它具有许多不错的功能。

要启用此功能,您需要做的就是打开播放器设置(“编辑”->“项目设置”->“播放器”),并将“脚本运行时版本”更改为“实验性(.NET 4.6等效)”。

让我们看一个简单的例子。给出以下协程:

public class AsyncExample : MonoBehaviour
{
   
    IEnumerator 
  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<p> </p><p style="font-size:.95rem;"> ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速、方便且可靠的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新 </p> <a href="http://ourpalm.github.io/ILRuntime/public/v1/guide/index.html#ILRuntime%E7%9A%84%E4%BC%98%E5%8A%BF"></a>ILRuntime的优势 <p style="font-size:.95rem;"> 同市面上的其他热更方案相比,ILRuntime主要有以下优点: </p> <ul style="font-size:.9rem;"><li style="font-size:1em;text-align:left;color:#525252;"> 无缝访问C#工程的现成代码,无需额外抽象脚本API </li> <li style="font-size:1em;text-align:left;color:#525252;"> 直接使用VS2015进行开发,ILRuntime的解译引擎支持.Net 4.6编译的DLL </li> <li style="font-size:1em;text-align:left;color:#525252;"> 执行效率是L#的10-20倍 </li> <li style="font-size:1em;text-align:left;color:#525252;"> 选择性的CLR绑定使跨域调用更快速,绑定后跨域调用的性能能达到slua的2倍左右(从脚本调用GameObject之类的接口) </li> <li style="font-size:1em;text-align:left;color:#525252;"> 支持跨域继承 </li> <li style="font-size:1em;text-align:left;color:#525252;"> 完整的泛型支持 </li> <li style="font-size:1em;text-align:left;color:#525252;"> 拥有Visual Studio的调试插件,可以实现真机源码级调试。支持Visual Studio 2015 Update3 以及Visual Studio 2017 </li> </ul> _____________________________________________________________________________________________________________ <p> <span style="font-size:24px;">本课程带领大家极速的上手ILRuntime,让大家学会在Unity如何快速集成ILRuntime热更新技术~</span> </p>
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值