为了让可视化脚本在复杂场景下依然保持极致流畅, CodeGen(代码生成) 功能应运而生。点击Compile按钮可将项目中的 EventGraph(事件图) 与 Functions(函数图) 从图的解释执行切换为编译后的 C# 代码运行,彻底释放运行时性能。

图片

丨核心优势

  • 解释执行 → 编译执行:原来在运行时逐节点解释图逻辑,现在直接运行预编译的 C# 代码,大幅降低 CPU 开销与内存分配。

  • 零破坏性接入:生成 C# 代码后,运行时系统会自动检测并优先使用编译版本,无需手动修改任何引用或逻辑。

  • 无感知切换:旧有图解算逻辑保留,只在存在生成代码时自动启用高性能路径,方便调试与回退。

  • 安全可追溯:生成的代码放置于 Assets/AnimGraph.Generated文件夹,结构清晰,便于版本管理与排查。

丨如何使用

  1. 在 AnimGraph 编辑器中打开图。

  2. 确保 EventGraph 和 Functions 逻辑已完成且测试通过。

  3. 点击工具栏上的 Compile 按钮。

  4. 生成的 C# 代码将自动存入 Assets/AnimGraph.Generated 下。

  5. 之后再运行项目时,引擎会自动检测并加载编译后的代码,跳过图解算过程,直接执行高性能逻辑。

如需回到解释执行模式,只需删除对应的生成文件即可。

图片

丨适用场景

  • 每帧调用的高频逻辑(如动画更新、角色运动等)

  • 角色多,性能需求高

  • 函数库庞大、连线复杂的工程

丨注意事项

  • 点击 Compile 前请确保图逻辑无编译错误,避免生成无效或错误的代码。

  • 生成的 C# 脚本,请避免手动编辑。

  • 现阶段若要切换为图运行,需要删除对应的生成脚本。

  • 建议将 AnimGraph.Generated 加入版本控制,以保持团队一致性。

结果比较

在150个角色,每个角色运行300多个节点下,编译后直接走C#逻辑更新,可有效提升运行速度和减少运行开销。

图片

未使用Code Gen

图片

使用了Code Gen

Logo

分享前沿Unity技术干货和开发经验,精彩的Unity活动和社区相关信息

更多推荐