SuperAPI AI 工具集

unity-npc-behavior

设计与创作

查看项目

更新于 10-16 01:37

技能介绍

用途:将 NPC 行为的设计意图翻译为可插拔、可测试的 Unity 代码结构,避免把感知、决策、动作全塞进单个 MonoBehaviour 的 Update() 中。

主要能力:

  1. 感知系统架构:定义 IPerceptionSense 接口,每个感官(如视觉 SightSense)为独立组件,PerceptionComponent 汇总所有感官结果,维护去重后的 KnownTargets 并触发 OnTargetDetected/OnTargetLost 事件。
  2. 决策层:决策配置使用 DecisionProfile(ScriptableObject,含 AggroRange、FleeRange、AwarenessThreshold、CallsForHelp、PreferredCombatDistance),NPCBlackboard 作为每实例数据存储,NPCDecisionMaker 读取感知并发出 Patrol/Engage/Flee 等决策事件。
  3. 动作执行管线:INPCAction 接口含 Enter/Tick/Exit 与 CanInterrupt,支持前摇、命中、恢复与中断,而非瞬时结算。

使用方式:把各感官作为组件挂在 NPC 上,PerceptionComponent 通过 GetComponents 自动发现;决策差异通过创建不同 DecisionProfile 资产实现,无需改代码。资料强调需搭配前置技能 unity-physics-queries、unity-state-machines、unity-game-architecture。

适用场景:需要多种 NPC 原型共享感知但决策不同、需要小队协调、需要可配置而非硬编码行为的 Unity 项目。

限制:感知查询开销大,需用 _updateInterval 错峰更新,OverlapSphereNonAlloc 需要预分配缓冲区;NPCBlackboard 必须为每实例 class,不可用 struct 或 static。原文动作执行管线段落被截断,其后完整实现暂未提供。