跳到主要内容

UniTask

  • 基于结构体 UniTask<T> 和自定义 AsyncMethodBuilder 实现零分配;
  • 是所有Unity AsyncOperations和Coroutines都可等待;
  • 基于PlayerLoop的任务(UniTask.Yield,UniTask.Delay,UniTask.DelayFrame等)可以替代所有协程操作;
  • MonoBehaviour消息事件和uGUI事件作为可等待/异步枚举;
  • 完全在Unity的PlayerLoop上运行,因此不使用线程并在WebGL、wasm等上运行;
  • 异步LINQ,带有Channel和AsyncReactiveProperty;
  • TaskTracker窗口防止内存泄露;
  • 与Task/ValueTask/IValueTaskSource高度兼容的行为;
  • UniTask功能依赖C#7.0,官方支持的Unity最低版本是2018.4.13f1;
  • UniTask不使用线程和SynchronizationContext / ExecutionContext;
  • UniTask的实现比Task更快、更低的分配,并且与Unity完全集成。