SuperAPI AI 工具集

unity-unitask-design

设计与创作

查看项目

更新于 10-16 09:51

技能介绍

用途:本模块是针对 Cysharp UniTask 2.5.10 的咨询型设计规则集,用于在编写或审查 Unity 异步代码前提供源码级依据,避免凭记忆臆断。适用于 async UniTask/UniTask<T>/UniTaskVoid 方法签名、Forget/AttachExternalCancellation/SuppressCancellationThrow 链式调用、Yield/NextFrame/Delay 等时序方法、WhenAll/WhenAny/WhenEach 组合、切换线程、AsyncOperation 与 UnityWebRequest 转换、异步触发器扩展、UniTaskCompletionSource 及异步枚举等场景。

主要能力:约十条关键规则及其源码锚点。要点包括:UniTask 是只读 partial struct,被 await 后 IUniTaskSource 会被回收,重复 await 同一变量会抛异常,多次等待需用 Preserve();方法返回的 UniTask 必须被 await、Forget() 或 AttachExternalCancellation(token),否则异常会进入 UniTaskScheduler.UnobservedTaskException;PlayerLoopTiming 定义 16 个时序槽(2020.2+,旧版 14 个),Yield/Delay 默认 Update;Delay 支持 DelayType.DeltaTime/UnscaledDeltaTime/Realtime;GetCancellationTokenOnDestroy 仅对 MonoBehaviour、GameObject、Component 提供;WhenAll 有多种重载且对原生 UniTask 零分配;AsyncOperation.ToUniTask 为规范适配器;UniTaskCompletionSource 的 TrySet* 首次成功后返回 false 而非抛异常;SwitchToThreadPool 与 Run 在 WebGL 运行时抛 NotSupportedException;async UniTaskVoid 是即发即弃惯用法。

使用方式:在任何操作模式(Approval/Auto/Bypass)下均可加载;调用本模块前应避免按名称猜测参数,先阅读本文件或通过 GET /skills/recommend?includeSchema=true 获取 schema 后再执行 dryRun。按主题分为 BASICS、PLAYERLOOP、CANCELLATION、COMPOSITION、CONVERSION、ASYNCENUMERABLE、TRIGGERS、PITFALLS 等子文档分流阅读。

适用场景:Unity 异步代码编写、代码审查、性能与陷阱排查、版本迁移(目标 2.5.10)。

限制:本模块仅为文档,无 REST 技能可调用,不执行代码;面向 2.5.10,早期 2.x 大体源码兼容但如 WaitForEndOfFrame 重载、WhenEach 等存在差异。文中未提供的具体安装命令、定价与平台支持等信息暂未提供。