mcpField
U
unity-async

unity-async

github.com/besty0728开发1.9k80 次安装今天更新
代码仓库

关于 unity-async

unity-async 是面向 Unity 运行时代码的文档技能,帮助选择任务调度与清理方式。它比较事件、协程、UniTask 和 Update,并强调生命周期归属与取消处理。

主要功能

  1. 01选择事件、回调或显式调用
  2. 02为短流程选择协程
  3. 03判断何时使用 UniTask
  4. 04将 Update 用于持续循环
  5. 05生命周期归属与取消建议

适用场景

  1. 01为 Unity 任务选择调度方式
  2. 02规划取消与清理流程
  3. 03减少不必要的逐帧 Update

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/besty0728/unity-skills --skill unity-async

安装后在 Claude Code 中输入/unity-async确认已加载。

详细介绍

**调用此模块中的任何技能之前:**如果你准备根据技能名称或描述猜测参数后调用技能,请停止——先阅读此文件(或通过 GET /skills/recommend?includeSchema=true 获取其架构)。如果你已从 recommend/schema 获取参数定义,则可以直接进行 dryRun。

触发条件

  • 在 Update/协程/UniTask/定时器间取舍
  • 处理取消与清理
  • 在 Update/协程/UniTask/定时器间取舍、处理取消与清理

Unity 异步策略

范围:此模块讨论的是你编写并放入 Unity 运行时的异步代码——Update、协程、UniTask、取消和生命周期所有权。它不涉及 REST 协议自身的异步任务。有关 jobId / 轮询 / job_status / GET /jobs/{id},请参阅 batch。

当用户正在决定如何调度或清理运行时工作时,请使用此技能。

护栏

模式:仅限文档——无需限制 REST 技能;在任何运行模式(Approval / Auto / Bypass)下均可自由加载。

  • 不要仅仅因为 UniTask 看起来比协程更高级就推荐它。
  • 优先选择适合用例的最简单调度模型。

决策顺序

  1. 首先确认任务是否真的需要逐帧执行。
  2. 如果不需要,优先使用事件、回调或显式方法调用。
  3. 如果需要执行一个简短的、受 Unity 管理的流程,优先使用协程。
  4. 仅在以下情况下推荐 UniTask:
    • 项目已经在使用它;或
    • 用户明确提出需求并接受引入此依赖。
  5. 仅当确实需要持续模拟、轮询或无法由事件驱动的输入循环时,才使用 Update。

具体指导

  • 如果可以采用更具事件驱动性的流程,请避免使用多个互不相关的 Update 方法。
  • 缓存热路径中使用的引用。
  • 始终明确生命周期所有权:
    • 谁启动工作
    • 谁取消或停止工作
    • 何时清理
  • 在 MonoBehaviour 中,优先使用 OnEnable / OnDisable / OnDestroy,以保持订阅和取消订阅的对称性。
  • IDisposable 主要用于纯 C# 生命周期、临时订阅或基于作用域的清理辅助工具;不要盲目用它替代 Unity 生命周期方法。

输出格式

  • 推荐的调度模型
  • 适用原因
  • 生命周期 / 取消责任方
  • 热路径风险
  • 若适用,说明为何不需要更重量级的替代方案

评论

支持 Markdown