嘿,大家!让我告诉你们关于我是如何遇见Claude... 等等,错了,错了脚本

好吧,我会告诉你们关于Claude在Unity项目中有缺陷,以及我如何修复了它。

你们知道吗?Unity中的所有关系都是复杂且混乱的,Claude通常很难处理它。原因很简单:链接和关系往往只有一条方向,所以item A知道它使用了item B,但不知道它被item C使用。所以,很可能Claude会找到item B,但可能会错过item C。只是一个基本的例子,但在Unity世界中,你可以通常将这个例子乘以10,或者20个不同的元素与资产、跨引用、地址、包、嵌套预设、预设变体等等。问题是,Unity知道所有这些,但从它的文件中很难读懂。

这就是我创造了Hades的原因。它是一个依赖图,插入包,添加插件到Claude中,然后就可以使用了,没有任何调整。图暴露给Claude通过MCP工具,混合了技能和指导。所以,你可以期待Claude在执行任何glob或grep之前使用Hades。

在工作于Hades期间,我对一件事感到恼怒 - 我必须在会话之间向Claude提醒一些关键细节,因为它的复杂性使得它很难从代码中读取它。因此,我决定额外地构建一个我称为Asphodel的层 - 持久的项目内存,也可以通过MCP工具访问你的代理。它的主要想法是,你不能将100%的必须信息放在你的 CLAUDE.md中,但你可以建立一个存储它的银行,让代理在需要时查询它!(查询很酷!不是吗?xD)所以,你问Claude,比如说,“我想建造一个新的敌人,具有不同的行为模式” - 而不是对文件进行原始搜索,Claude会查询Hades图表和Asphodel中关键词。图表会返回搜索相同的脚本,但包括所有Unity资产的引用,如场景、预设、可脚本化对象等。并且,Asphodel会返回你构建的指南,匹配主题 - “所有未来的敌人行为模式必须是EnemyBase预设的预设变体,但它们不需要继承任何C#代码”,例如。

如果你感兴趣的话,关于试验场:

我在同一个项目上运行了相同的提示,使用和不使用Hades:"我想改变EnemyAI对敌人的影响。哪些预设和场景受到影响?” - 在一个小的arena中,一个base Enemy预设 + 3个变体,继承 EnemyAI,跨越3个场景。正确答案是4个预设,3个场景。

  • 不使用Hades:它找到了1个预设和1个场景 - 然后自信地建议“将EnemyAI添加到变体中”,这实际上会破坏预设继承。错误且误导
  • 使用Hades:4个预设,3个场景,正确 - 并且作为一个奖励,它提取了~43%的上下文,花费了~27%的费用,因为它查询了图表而不是grep。

同样的模型,同样的项目,只有Hades的开关。完整的分解和未剪辑的运行视频:https://github.com/TheArcForge/Hades/blob/main/Documentation/comparison.md

到目前为止,我已经使用了Hades几周了,它感觉很好,尽管我总是添加新的东西到我的todo列表中 :D

另外,如果你想读一个更详细的故事,请访问我的Medium - https://medium.com/@mike.kuharuk/unity-context-graph-for-claude-code-2607ec815968

并且这里是GitHub - https://github.com/TheArcForge/Hades

我想问你们 - 你们对这个项目有什么想法?我希望Hades能够对社区有用,并且成为你们的长期伙伴。但为了实现这一点,我需要了解其他开发者在AI驱动开发中遇到的问题。所以,让我们谈谈这个项目本身或你们遇到的问题 - 我可能会在未来的更新中包括它们

再见!