diff --git a/Assets/_Game/Scripts/Enemies/AIBrain/EnemyAiBrain.cs b/Assets/_Game/Scripts/Enemies/AIBrain/EnemyAiBrain.cs index c92c460a..20123148 100644 --- a/Assets/_Game/Scripts/Enemies/AIBrain/EnemyAiBrain.cs +++ b/Assets/_Game/Scripts/Enemies/AIBrain/EnemyAiBrain.cs @@ -31,8 +31,13 @@ namespace BaseGames.Enemies // 根因暴露:漏配 id 直接报错,不静默兜底。 Debug.LogError($"EnemyAiBrain 未配置 _definitionId:{name}", this); enabled = false; - return; } + } + + // 在 Start 构造 runtime:确保 EnemyBase.Awake 已发现 Locomotion/子系统后, + // 再触发入口状态 OnEnter(其会声明 locomotion 意图)。所有 Awake 先于任一 Start 执行。 + void Start() + { var graph = AiDefinitionRegistry.GetGraph(_definitionId); // 不存在则抛异常 _context = new EnemyBrainContext(_enemy); _runtime = new AiRuntime(graph, _context);