joywayer
23a3a1c274
refactor(ai): EnemyBase/QuotaManager 移除 Opsive BT,改接 EnemyAiBrain(Brain访问器/Died信号/OnSpawn重置/LOD裁剪)
2026-07-03 15:10:55 +08:00
joywayer
a9acace0a0
feat(ai): E001(草蛭) AiScript 定义——巡逻/追击/搜查(接触伤害杂兵)
2026-07-03 15:03:27 +08:00
joywayer
4994360927
feat(ai): EnemyAiBrain 组件——承载 AiRuntime、逐帧推进、池复用重置、信号入口
2026-07-03 15:00:59 +08:00
joywayer
20c2568222
feat(ai): EnemyBrainContext——EnemyBase子系统适配为BrainGraph能力接口
2026-07-03 14:58:52 +08:00
joywayer
683a2d9ffb
feat(ai): AiDefinitionRegistry——反射按id提供共享AiGraph(关域重载重置)
2026-07-03 14:55:42 +08:00
joywayer and Claude Opus 4.8
80864eec6c
docs(ai): BrainGraph 接通敌人阶段(E001+脚手架一键)实现计划
...
AiDefinitionRegistry(反射按id取共享图)+EnemyBrainContext(单类适配)+EnemyAiBrain组件
+E001 AiScript+EnemyBase去BT接signal+SceneObjectPlacerTool一键挂载+PlayMode集成验证.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-03 14:52:22 +08:00
joywayer
11e4c9f1ea
refactor(ai): 终审收尾——删死字段/事件转换刷新IsSuspended + 局部事件与双实例独立性测试
2026-07-03 14:33:23 +08:00
joywayer
747d39072e
test(ai): BrainGraph 第1阶段收尾——flyweight 共享测试 + 全量绿
2026-07-03 14:26:01 +08:00
joywayer
d01df7b5f0
feat(ai): AiRuntime 事件转换(push,不受门限制)+trace触发原因+池复用测试
2026-07-03 14:23:28 +08:00
joywayer
5ad26b16e8
perf(ai): AiRuntime 热路径去装箱/弱表一次注册 + 补 OnExit/Entry OnEnter 测试
2026-07-03 14:20:19 +08:00
joywayer
cdd1053bec
feat(ai): AiRuntime 条件转换+IsControllable让位门+状态计时+trace+Reset
2026-07-03 14:13:36 +08:00
joywayer
0253fd15ca
refactor(ai): BrainGraph Task4 审查修复——删死字段/Global空目标校验/AiState只读转换
2026-07-03 14:09:43 +08:00
joywayer
6f9fa8c4b8
feat(ai): BrainGraph AiGraph + BrainBuilder(fluent, 显式标签, 目标校验)
2026-07-03 14:04:51 +08:00
joywayer
3d6cef1f41
feat(ai): BrainGraph Transition/AiState/TransitionRecord 数据结构
2026-07-03 14:00:27 +08:00
joywayer
7281c5cf6e
feat(ai): BrainGraph 能力接口(ISensor/IMover/ICombatant/IActorVitals)+IAiContext
2026-07-03 13:58:52 +08:00
joywayer
db5bd019f8
feat(ai): BrainGraph 核心程序集 + AiSignal + Blackboard(可自省)
2026-07-03 13:56:11 +08:00
joywayer and Claude Opus 4.8
2339b5cd87
docs(ai): BrainGraph 标签方案改为 C#9 兼容(显式可选字符串)
...
Unity 2022.3=C#9,不用 C#10 的 CallerArgumentExpression;When(cond,label)显式可选,
默认回退"cond";spec 示例与 Phase1 计划(Task4/5 测试)同步更新.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-03 13:51:34 +08:00
joywayer and Claude Opus 4.8
5155368201
docs(ai): BrainGraph 第1阶段(核心运行时)实现计划
...
TDD/EditMode 覆盖: 程序集+Blackboard+能力接口+Transition/AiState+AiGraph/BrainBuilder
+AiRuntime(条件/事件转换,IsControllable门,状态计时,trace,池复用重置); 后续4阶段路线图.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-03 13:42:01 +08:00
joywayer and Claude Opus 4.8
93431102ab
docs(ai): 补充 BrainGraph 多实例复用与对象池设计
...
共享 AiGraph(每类型1份 flyweight)+每实例 AiRuntime; lambda 禁实例捕获;
对象池回收再生须重置 AiRuntime; 调度错峰; 新增对应验收标准.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-03 13:29:34 +08:00
joywayer and Claude Opus 4.8
0ed7353d24
docs(ai): 敌人 AI 框架(BrainGraph)设计——HFSM 替换 Behavior Designer
...
C# 声明式为唯一事实来源, 可视化从模型自动生成; 只新建决策层+干净能力接口,
现有感知/移动/能力子系统保留; 受击物理FSM用 IsControllable 门显式让位;
交付面: 运行时调试器/Mermaid导出/MCP自省API; v1 试点 E001+ChaoFengBoss.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-03 13:01:49 +08:00
joywayer
c7dd125bc0
添加资源
2026-06-12 12:05:30 +08:00
joywayer and Claude Fable 5
f7eb2d4368
fix(editor): WeaponHitBoxWizard 补挂 WeaponFeedback——武器本地反馈链路接通
...
向导生成武器 HitBox Prefab 时在根节点添加 WeaponFeedback
(WeaponHitBoxInstance.Awake 经 GetComponentInChildren 获取)。
此前组件缺失,武器级命中/破风反馈静默落到 NullFeedbackPlayer。
MMF_Player 反馈链内容仍留待 Inspector 编排。存量
WPN_WPN_DiHun_HitBox.prefab 已另行补挂修正。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 11:59:35 +08:00
joywayer and Claude Fable 5
09bdda970a
feat(feedback): 命中/受击反馈支持固定位置与击中位置两种生成模式
...
DamageInfo 新增运行时字段 HitPoint:HitBox 结算时写入精确接触点
(ClosestPoint),HurtBox.ReceiveDamage 以解析后命中点兜底盖戳,
陷阱/环境等直调路径同样可用。IFeedbackPlayer.PlayHit/PlayTakeHit
增加命中点参数,全链路(武器实例→PlayerCombat→HurtState→
EnemyFeedback)透传。各 Feedback 组件命中/受击槽位新增
FeedbackPositionMode(Fixed=反馈链编排的固定位置 /
HitPoint=传入命中点,启用位置选项的模块在该点生成),由编排
反馈链的开发者在 Inspector 按表现选择;武器命中默认 HitPoint
(火花贴点),角色级默认 Fixed(震屏/振动与位置无关)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 11:48:37 +08:00
joywayer and Claude Fable 5
5ccab35948
feat(world): 检查点复活位置由 RespawnPoint 子节点显式配置
...
CheckpointMarker 新增 _respawnPoint 引用,注册的检查点位置改为
该子节点的位置——触发区与出生点解耦,触发区可横跨通道、出生点
精确落在安全平台上。漏配时 Awake 显式报错且不注册(不以标记
自身位置兜底)。Gizmos 增画复活点(青色)与触发区连线,漏配
画红叉警示。PlaceCheckpointMarker 脚手架自动创建并绑定
RespawnPoint 子节点。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 11:26:02 +08:00
joywayer and Claude Fable 5
bedb0f8ff4
fix(combat): 地刺死亡判定改从 HurtBox 向上查找——死亡不再误传回检查点
...
此前经 other.transform.root 查 IDamageable,玩家被临时挂到其他
父物体(如移动平台)下时 root 非玩家根节点而漏判死亡,导致致死
触碰仍 Raise EVT_CheckpointRespawn 与死亡流程撞车。改为
other.GetComponentInParent 从 HurtBox 自身向上查找,任何层级
结构下死亡均只走死亡流程,存活才回溯检查点。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 11:20:10 +08:00
joywayer and Claude Fable 5
01787e9c34
fix(world): 检查点标记闩锁随接触周期重置——折返重经标记可覆盖注册
...
CheckpointMarker._isActivated 此前一次性置位,玩家折返重新经过
早先的标记不会再注册,"最近经过的为准"对回头路失效。改为
OnTriggerExit2D 重置闩锁:每次重新进入触发区都覆盖注册最近
检查点,同一次接触内仍只注册/广播一次。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 11:16:08 +08:00
joywayer and Claude Fable 5
613f93c13e
fix(combat): 地刺闩锁随接触周期重置——检查点回溯后陷阱恢复生效
...
LethalTrap._triggered 此前仅在 OnEnable 重置,存活回检查点路径
不重载场景,首次触发后陷阱永久失效。改为 OnTriggerExit2D(玩家
HurtBox 离开触发区,含传送移位)重置闩锁:同一次接触内仍只结算
一次,下一次触碰重新生效;死亡路径仍经场景重载由 OnEnable 重置。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 11:10:51 +08:00
joywayer and Claude Fable 5
64822595b3
fix(player): 补挂 CheckpointRespawnHandler——存活回检查点链路接通
...
PlacePlayer 脚手架新增 CheckpointRespawnHandler 并自动绑定
EVT_CheckpointRespawn/EVT_FadeOutRequest/EVT_FadeInRequest;
Player.prefab 同步补挂修正。此前 LethalTrap 存活路径 Raise 的
EVT_CheckpointRespawn 无任何监听者,玩家不会被传送回检查点。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 11:04:33 +08:00
joywayer and Claude Opus 4.8
862a1e5899
fix(combat): 弹反阵营感知——仅玩家弹反才翻转投射物阵营与目标层
...
新增 Projectile.ReflectBy(parrier):按弹反者根节点 Tag 区分阵营。玩家弹反走原 ReflectAsPlayerProjectile(切 PlayerProjectile 层+切换伤害目标层);敌人弹反敌人投射物时阵营层与目标层均保持不变(仍是敌方投射物、仍打玩家侧),仅反转方向并重置命中记录与预算。HurtBox 弹反分支改传弹反者 Transform;ParryableProjectile 手写弹反分支同步加阵营判断。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 10:49:23 +08:00
joywayer and Claude Opus 4.8
5922ef373d
feat(combat): 弹反投射物伤害目标层改为显式配置
...
ProjectileConfigSO 新增 ReflectedTargetLayers:弹反后写入 HitBox.TargetLayers 的目标层显式配置;留空(Nothing)有明确缺省语义=自动翻转(PlayerHurtBox 位换 EnemyHurtBox 位、其余位保留)。Projectile/ParryableProjectile 两条弹反路径统一走 ApplyReflectedTargetLayers。现有 6 个投射物配置资产已显式配为 EnemyHurtBox。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 10:43:57 +08:00
joywayer and Claude Opus 4.8
1866f323e4
feat(combat): 投射物接入伤害目标层过滤,弹反阵营/目标同步翻转
...
HitBox 暴露 TargetLayers 运行时读写。Projectile 缓存预制体初始目标层并在 Initialize 还原(对象池复用不被上一发弹反污染);ReflectAsPlayerProjectile 时目标层随阵营翻转(PlayerHurtBox→EnemyHurtBox,保留可破坏物等其他位)。
ParryableProjectile 绕过 HitBox 自行判定,补上同样的目标层过滤;并修复其弹反分支不切 PlayerProjectile 层的问题——原先反射后仍留在 EnemyProjectile 层,碰撞矩阵 EnemyProjectile↔EnemyHurtBox 不碰撞,反射弹永远打不中敌人。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 10:34:43 +08:00
joywayer and Claude Opus 4.8
ef7ff63b67
feat(combat): HitBox 新增 _targetLayers 实例级伤害目标过滤
...
Physics2D 碰撞矩阵只决定哪些层之间产生 Trigger 事件(全局门),无法表达单个判定盒的伤害目标差异。新增 _targetLayers 掩码:事件发生后仅对配置层结算伤害,拼刀检测独立于该过滤;Enter 入口同步过滤,非目标不进入命中/占用跟踪。默认 Everything,存量资产行为不变。
ENM_CaoZhi 接触伤害盒按规范配置 _targetLayers=PlayerHurtBox(不误伤友军),并清掉误配为 Player 层的 _rivalHitBoxMask(身体接触不参与拼刀)。已实机验证收紧后接触伤害正常。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 10:15:27 +08:00
joywayer and Claude Opus 4.8
8515dfa7ab
feat(combat): 下劈弹跳完善——可破坏物可弹跳+独立弹跳力+下劈保留空中操控
...
- HitBox 新增 OnBreakableHitConfirmed:命中 IBreakable 也发命中确认,
下劈打可破坏物同样弹跳;不走 OnHitConfirmed,灵力仍只来自敌人
- 新增 PogoBounceForce 配置(默认 15,略低于 JumpForce=18)+
PlayerMovement.PogoBounce(),弹跳高度独立可调、固定不可截断
- DownAttackState 增加 OnStateFixedUpdate:下劈期间保留完整空中
水平操控(含与 FallState 同款贴墙保护)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 09:51:17 +08:00
joywayer and Claude Opus 4.8
3bafc4cbaa
fix(combat): 下劈去除向下俯冲位移,回归纯向下攻击+命中弹跳
...
下劈原在 OnStateEnter 强加 -18 向下速度,使手感变成下冲/俯冲。
删除该俯冲位移,角色保持自然下落、纯向下挥击;命中弹跳与
重置空中跳跃/冲刺次数逻辑(OnDownHitConfirmed)保持不变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 02:40:00 +08:00
joywayer
565a498491
调整场景物体
2026-06-11 17:00:40 +08:00
joywayer and Claude Opus 4.8
8a0992c0e7
fix(combat): HitBox 懒初始化,修复 Activate 早于 Awake 致接触判定碰撞体被禁用
...
BodyContactDamage.OnEnable 在 HitBox.Awake 之前调用 Activate 时 _directColliders 尚未收集,Activate 对空列表启用碰撞体、随后 Awake 又禁用碰撞体,导致接触伤害判定盒永久收不到 Trigger 事件、玩家不受碰撞伤害。原 BodyContactDamage 靠 Update 周期 re-Activate 掩盖了该时序问题,移除该循环后暴露。
将碰撞体/代理/服务缓存收集抽到 EnsureInitialized 懒初始化,Awake 与 Activate 都先调用,与脚本执行顺序无关。已实机验证:进入 Play 后碰撞体自动启用,玩家正常受到碰撞伤害。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 16:56:42 +08:00
joywayer
d441518dfe
指定动画等
2026-06-11 16:32:32 +08:00
joywayer and Claude Opus 4.8
cc046c53b3
fix(combat): HitBox 命中节奏统一 + 投射物穿透可配
...
HitBox 新增 HitMode Single/Interval:Interval 用 Enter/Exit 跟踪占用 + Update 轮询,对停留目标按间隔重判,不再依赖 OnTriggerEnter 单次语义。BodyContactDamage 改用 Interval 模式,修复停留在接触判定内、无敌结束后不再受伤的 bug;FlyingEnemy 接触伤害加按目标间隔节流。ProjectileConfigSO 新增 MaxHits 默认 1 即命中即消失,Projectile 按命中预算回收,修掉默认无限穿透;弹反守卫避免反射后立即回收。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 16:31:55 +08:00
joywayer and Claude Opus 4.8
0491e3f919
fix(combat): 统一受击无敌闸门并修复 DoT 失效
...
将无敌判定收口到 PlayerController.TakeDamage(DamageInfo) 单一闸门并认 DamageFlags.IgnoreIFrame,PlayerStats 拆出原始扣血 ApplyDamage;新增 DamageFlags.IsDoT,持续伤害只扣血不打断硬直、不授予无敌。修复 DoT 绕过 HurtBox 时被 flag-blind 的整数 TakeDamage 静默吞没、且 FinalDamage 未结算(恒为0)的双重失效;敌人侧 DoT 标记 IsDoT 避免每 Tick 重置硬直。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 16:30:56 +08:00
joywayer
523f7c842a
修改editorsetting
2026-06-11 15:31:29 +08:00
joywayer and Claude Opus 4.8
4189a6210b
perf(editor): 关闭 Domain/Scene Reload 加速进入 Play,并补齐域重载安全
...
关闭 Domain Reload 后 SO 的 OnEnable/OnDisable 不再于进入/退出 Play 触发、
静态字段不再重置,运行时态会跨 Play 会话残留。补齐重置路径:
- 新增 PlayModeResetHook:编辑器内在"进入 Play 前"统一回调各 SO 的重置,
复刻 Domain Reload 曾提供的干净起点;运行时构建为空实现、零开销。
- 静态态用 RuntimeInitializeOnLoadMethod 重置:
ServiceLocator._services / SettingsManager.SettingsChanged /
EventChainManager.OnChainExecutedInEditor。
- SO 运行时态经 PlayModeResetHook 重置:
BaseEventChannelSO(粘性值+订阅委托) / VoidBaseEventChannelSO /
WorldStateRegistry(状态字典+变更事件) / InputReaderSO。
- InputReaderSO 增加解绑追踪:跨会话重建前先解绑旧输入回调,
避免 InputActionAsset 存活导致同一输入重复绑定、多次触发。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 14:40:37 +08:00
joywayer
253a8811fa
删除godot mcp
2026-06-11 13:28:33 +08:00
joywayer
9e7b513e60
删除旧生成的截图
2026-06-11 13:28:04 +08:00
joywayer
a1f54b68e6
Refactor interaction prompt system to use world space prompts
...
- Removed the InteractPromptWidget from HUD and its references in HUDController.
- Introduced IInteractPromptView interface for world space interaction prompts.
- Implemented WorldInteractPrompt class to manage display of interaction prompts in world space.
- Updated InteractableDetector to handle showing/hiding of world space prompts based on player proximity to interactable objects.
- Created a new prefab for UI_WorldInteractPrompt to facilitate the new interaction prompt system.
2026-06-10 14:14:08 +08:00
joywayer
32566020c7
feat(input): 添加 IInputIconService 接口及 InputDeviceType 枚举以支持按键图标管理
2026-06-10 14:13:34 +08:00
joywayer
956a1dc5ab
Refactor code structure for improved readability and maintainability
2026-06-10 10:19:27 +08:00
joywayer
ebf0c97320
refactor(enemy): 敌人专属子类改为零代码配置型行为组件
2026-06-09 15:56:44 +08:00
joywayer
7781ac4755
docs: CLAUDE.md 补充禁止引用其他游戏与及时 git 提交规范
2026-06-09 11:00:42 +08:00
joywayer
e09bee31ec
UI 系统
2026-06-09 10:41:43 +08:00
joywayer
247de307c6
UI 系统
2026-06-08 16:05:00 +08:00