zombie-ai
baponkar/zombie-ai加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨 3 点,一座废弃医院。手电筒的光柱扫过走廊尽头——两个佝偻的身影正缓缓逼近。你拔枪、瞄准,却发现它们分头包抄,其中一个绕到了你身后。这类"怪物比玩家更聪明"的紧张感,正是 Zombie AI 这个 Unity 开源项目想要解决的核心问题:如何让游戏中的 NPC 不再是只会直线冲锋的傻瓜。
Zombie AI(baponkar/zombie-ai)是一款专为 Unity 引擎设计的高级僵尸/敌人 NPC 行为系统。它通过**有限状态机(FSM)**实现了一套完整的 NPC 决策逻辑,覆盖待机、追击、巡逻、攻击、逃跑、死亡等六种核心状态,同时配备了视觉传感器和听觉传感器,让僵尸能够"感知"玩家位置并做出相应反应。

从架构上看,这个项目的设计思路相当清晰。核心层是 ZombieFsm(有限状态机),负责管理僵尸的所有行为状态转换。状态之间通过 Scriptable Object 配置类进行解耦——你可以随时调整某个状态的行为参数,而无需改动状态机本身的代码逻辑。
项目实现的关键传感器包括:

项目完整实现了六种状态,其中部分功能值得重点关注:
巡逻状态(Patrolling):支持基于路径点(Waypoint)的巡逻模式,僵尸会按照预设路径点依次移动,模拟日常巡视行为。结合感知系统,巡逻中的僵尸一旦捕捉到玩家信号,会立即切换到追击状态。
追击状态(Chasing):利用 Unity 内置的 NavMesh 导航系统,僵尸能够智能绕开障碍物找到最短路径接近玩家。追击过程中还会综合考虑自身生命值——低血量时可能触发逃跑状态。
呼叫机制(Call Near NPC):这是项目中较为独特的设计。单个僵尸发现玩家后,会向周围一定范围内的同伴发出呼叫信号,触发群狼围攻效果。这个机制极大提升了战斗的真实感和难度。
作为 Unity 资产包,这个项目对开发者相当友好。首先从 GitHub 下载项目压缩包,然后使用 Unity 2020(LTS 或更新版本)打开项目。如果遇到层次(Layer)配置缺失的报错,需要手动在 Unity Editor 中添加对应的 Layer——项目文档中附带了详细的配置步骤 PDF。
项目包含了一个可直接运行的 Demo Scene,导入后按 Play 即可看到 FPS 玩家控制 + 多个僵尸 AI 协同作战的演示效果。演示场景内置了走路音效、相机抖动等增强体验的小细节,开箱即用。
对于想在其他 Unity 项目中复用的开发者,作者建议只将 _Zombie_ai_Fsm 文件夹拷贝到目标项目中,然后按文档步骤配置 Layer 和 Scriptable Object 即可,不需要整个项目全部导入。
这个项目有几个明显的局限需要注意:
第一,无明确 License。项目在 GitHub 上的 license 字段为空,README 中仅提到 License 链接指向 LICENSE.md,但实际文件内容无法通过 API 确认。在商业项目中使用前,必须联系作者 baponkar 确认授权方式,避免潜在的版权风险。
第二,不支持一键部署。这是纯 Unity 引擎项目,没有 Dockerfile 或 Docker Compose,无法在服务器/容器环境中直接运行演示。如果你需要 AI NPC 的服务端模拟或自动化测试,这个方案不适用。
第三,行为树功能已搁置。README 中提到 Behavior Tree 控制方式被放弃,状态机是当前唯一的行为控制方案。虽然架构图中还保留了行为树的设计,但代码中并未实现。
第四,无单元测试。代码质量主要依赖 Demo Scene 人工验证,没有自动化测试覆盖。二次开发时的回归风险需要自己把控。
虽然这个项目仅有 83 颗 stars,但结合其 topics(unity、game-development、ai、npc)来看,它精准定位于 Unity 游戏 AI 开发这个细分领域。随着独立游戏和 VR/AR 应用的持续增长,对高质量 NPC AI 系统的需求也在扩大。相比购买昂贵的第三方资产包,开源的 FSM + 传感器方案为独立开发者提供了一个可学习、可定制的起点。
项目最近一次活跃更新在 2026 年 5 月(v2.3.3),说明作者仍在维护。对于想要深入理解游戏 AI 状态机设计的开发者,这个项目的代码结构清晰、文档完整,是一份不错的学习素材。
一句话总结:如果你正在开发 Unity 游戏且需要一个行为丰富、可配置的僵尸/敌人 AI 系统,这个开源 FSM 方案值得一试;但使用前务必确认作者的授权许可。