 joywayerandClaude Opus 4.8
|
d718b99685
|
refactor(enemy): 删除 AiPhase 影子层,动画统一由 locomotion/反应态/能力驱动
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 13:38:27 +08:00 |
|
 joywayerandClaude Opus 4.8
|
347d0e2f50
|
feat(enemy): EnemyLocomotion 按模式驱动步态动画(Idle/Walk/Alert/Run)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 13:33:16 +08:00 |
|
joywayer
|
087aa96ca6
|
@
fix(ai): EnemyAiBrain 在 Start 构造 runtime,修入口态 locomotion NRE
入口状态 OnEnter 会声明 locomotion 意图(x.Locomotion.SetMode),但原在 Awake
构造 AiRuntime 时 EnterInitial 立即触发该 OnEnter——此时 EnemyBase.Awake 可能
尚未发现 _locomotion(两组件 Awake 顺序未定),导致 x.Locomotion 为 null 抛 NRE,
brain 未建成 runtime。改在 Start 构造(所有 Awake 先于任一 Start),保证依赖就绪。
根因修复,非 null 兜底。P3 PlayMode 验证发现。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
|
2026-07-10 13:30:46 +08:00 |
|
 joywayerandClaude Opus 4.8
|
1bc6f5bf1c
|
refactor(ai): Chase 走 Locomotion.Approach;删除 Idle/Patrol/Alert 协程能力与 SO
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 12:24:45 +08:00 |
|
 joywayerandClaude Opus 4.8
|
0f0112eb91
|
refactor(ai): PerceptionStateMachine 状态改绑 locomotion 意图
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 12:17:49 +08:00 |
|
 joywayerandClaude Opus 4.8
|
1ab0521061
|
refactor(ai): IAiContext.Mover→Locomotion,删除 IMover
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 12:14:53 +08:00 |
|
 joywayerandClaude Opus 4.8
|
f143efe4a3
|
feat(scaffold): PlaceE001 挂载 EnemyLocomotion,重生成 prefab
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 12:10:29 +08:00 |
|
 joywayerandClaude Opus 4.8
|
8c1a8647bb
|
feat(enemy): EnemyBase 经接口发现并暴露 Locomotion(IEnemyLocomotion)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 12:06:41 +08:00 |
|
 joywayerandClaude Opus 4.8
|
0f988c4cef
|
feat(enemy): 新增 EnemyLocomotion 执行器(Idle/Patrol-Wander/Face/Approach)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 11:59:02 +08:00 |
|
 joywayerandClaude Opus 4.8
|
0a7312e9bc
|
feat(ai): 新增 IEnemyLocomotion 接口与 LocomotionMode/PatrolStrategy 枚举
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 11:55:41 +08:00 |
|
joywayer
|
e894a9dd27
|
@
chore(ai): 移除死代码 Behavior Designer(BD_* + Opsive 包 + 宏)
敌人 AI 已迁到自研 BrainGraph,旧的 Opsive Behavior Designer 集成全线死亡:
无任何 prefab 挂 BehaviorTree,新系统也不引用 BD 任务。用户手动删除三个
com.opsive.* 包后,BD_* 文件(#if GRAPH_DESIGNER 下引用 Opsive 类型)导致
BaseGames.Enemies.AI 程序集编译失败——本提交清除死代码并恢复编译。
- 删除 ~50 个 BD_*.cs + BDTaskAttributes.cs + BaseGames.Enemies.AI.asmdef。
- 移除 Standalone 的 GRAPH_DESIGNER 脚本宏。
- 移除 com.opsive.behaviordesigner/shared/graphdesigner 嵌入包(用户已删目录)。
已扫描确认无其他程序集引用该 AI 程序集、无真实 Opsive/BD_ 类型引用
(仅注释/Tooltip 提及)。编译 0 错误。属敌人架构重构 P1(死代码清除)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
|
2026-07-10 11:37:16 +08:00 |
|
 joywayerandClaude Opus 4.8
|
2e2df2b5dd
|
refactor(ai): E001 贯彻"AI只决策"——每状态=一能力(Model A)
AI 决策层(E001CaoZhiAi + PerceptionStateMachine)彻底移除所有 actuation:
不再有 Mover.Stop/FacePlayer/UseChaseSpeed/WalkRandom、也不再 SetPhase。
每个 AI 状态只声明触发哪个能力 id,行为(移动/朝向/停/速度/动画/伤害/
阶段声明)全部下沉到对应能力里。
- 新增 IdleAbility/PatrolAbility/AlertAbility:待机静止、巡逻游走、
警觉朝向玩家,各自 SetAiPhase 驱动阶段动画。
- ContactChaseAbility 追击进入时自设 RunSpeed + Chase 阶段(原在 AI)。
- PerceptionStateMachine 改为 AddAbilityState:进入/每帧 EnsureAbility
(被打断/受击后自动重触发)、离开 InterruptAbilities;转换规则不变。
- IEnemyActor/EnemyBrainContext 移除已无用的 SetPhase,保留 HasAlertState。
- 新增 SO:ABL_E001_Idle(e001_idle)、ABL_E001_Patrol(e001_patrol)。
- 脚手架 PlaceE001 与 ENM_CaoZhi 预制体同步为四能力结构;TestRoomA
实例替换为规范预制体实例。
PlayMode 验证:Chase→ContactChaseAbility、脱离感知→Move_Patrol→
PatrolAbility,阶段由能力设置,无报错。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 10:05:14 +08:00 |
|
 joywayerandClaude Opus 4.8
|
490329e1dc
|
refactor(nav): 敌人移动改为物理原生架构——根治 TBM 与 Dynamic 刚体冲突
根因: NavAgent.Position setter 直接写 transform.position, TBM 段移动每帧写它, 与敌人
Dynamic 刚体(重力/碰撞)冲突(旧代码靠"NavDriving清零velocity"缓解,但对Dynamic刚体直接
写transform.position本就不推荐,易卡墙/穿透/被物理覆盖)。
根本解: 寻路降为"顾问"(只给方向),移动执行归物理:
- EnemyNavAgent.Awake 禁用 TBM.SegmentMovement(不再写 transform.position);
- FixedUpdate 改物理原生桥: 朝 PathSubGoal 写 MoveDir+MoveSpeed 由 EnemyMovement 施加
velocity+重力执行, 到达子目标时 CompleteSegmentTraversal 推进段(原由TBM负责);
- EnemyMovement 撤掉 NavDriving 的清零velocity/只朝向门, nav方向统一走velocity移动。
保留击退/击飞/落地等全部物理反馈。
附带修 PerceptionStateMachine: 追击维持改"追逐区 OR 视野区"任一(视野los可能被墙挡漏检,
仅靠视野会导致玩家在近身追逐区内却Chase↔Patrol抖动、nav被反复Stop不移动)。
PlayMode 验证: 敌人 nav 巡逻/追击均用velocity移动(FollowPath/onSeg=True)、追击稳定无抖动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-09 17:19:01 +08:00 |
|
 joywayerandClaude Opus 4.8
|
643f63c737
|
fix(nav): 修复 nav 寻路核心用法——重寻路防抖 + allowCloseEnoughPath
根因1: PathBerserker2d NavAgent.UpdatePath 明确禁止每帧调用(路径计算跨帧,每帧重启则永不完成、
agent永不移动),而追击每帧 MoveTo→RequestMoveTo→UpdatePath。修: EnemyNavAgent.RequestMoveTo
加防抖(目标位移阈值0.5m + 最小间隔0.25s),让路径算完并跟随;StopNavigation 复位。
根因2: NavAgent.allowCloseEnoughPath 默认false→追击玩家(常不在导航段上)寻路直接失败。
修: 脚手架(4个PlaceExxx)+E001 prefab 设为 true(寻路到最近可达点)。
验证: 敌人 nav 巡逻/追击已能真正跟随路径移动(following=True)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-09 16:43:52 +08:00 |
|
 joywayerandClaude Opus 4.8
|
790595d8de
|
fix(scaffold): 碰撞体底部对齐 y=0(原点=脚底) 修正 NavAgent 有效位置 + 追击改回nav
根因: NavAgent 用 transform 原点(0,0)判定是否在导航段上,而脚手架 CreateBodyCollider
未设 offset(碰撞体居中,底部在-size.y/2),站到地面时原点悬在导航线上方→HasValidPosition=False。
修复: AlignColliderBottomToPivot 让所有身体/HurtBox/HitBox 碰撞体底部对齐 y=0(通用规则,
角色/敌人/Boss 同理);同步修 E001 prefab 碰撞体 offset。验证: 敌人落地后 navValid=True(自动)。
追击能力改回 nav 寻路(MoveTo),不再直接移动。
注: 导航路径"跟随"仍有既有集成问题(UpdatePath 后 agent 不跟随可达路径),需另行排查。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-09 16:22:54 +08:00 |
|
 joywayerandClaude Opus 4.8
|
d0f69b0599
|
fix(ai): E001 追击真正移动+攻击——直接水平爬行 + prefab 补挂 EnemyAiBrain
追击移动从 A* 寻路(MoveTo)改为直接朝玩家水平爬行(MoveInDirectionWithSpeed):
地面爬行怪不需寻路,且不依赖场景 NavGraph 烘焙(PathBerserker2d 在测试场景失效)。
ENM_CaoZhi prefab 补挂 EnemyAiBrain(_definitionId=E001),使对象池/prefab 生成的敌人也有AI
(此前只有脚手架场景实例有brain)。PlayMode 验证:敌人爬向玩家并接触伤害击杀。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-09 15:48:50 +08:00 |
|
 joywayerandClaude Opus 4.8
|
6c27993e09
|
feat(ai): 敌人感知↔状态模型——待机/警觉/追击/巡逻 + 可复用感知状态机
感知门面 EnemyBase.InChaseZone(追逐/aggro)/InVisionZone(视野/los,缺省回退aggro),纯查询;
转换逻辑归 AI 层: 新增可复用 PerceptionStateMachine(统一规则,HasAlert/视野缺省自动降级);
规则: 未发现进视野→警觉, 进追逐→追击(委托能力), 追击脱离视野→巡逻(永不回警觉,再进视野再警觉).
EnemyStatsSO.HasAlertState 勾选项; ContactChaseAbility 改纯执行器(退出由AI中断); E001 用可复用件.
PlayMode 验证四态转换全通过.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-09 15:10:39 +08:00 |
|
 joywayerandClaude Opus 4.8
|
150fadb72e
|
fix(content): E001 能力/prefab 对齐设计——技能无CD、伪装期不伤人
ABL_E001_Chase/Alert cooldown 1.5→0(设计:E001无主动技能CD,再入感知立即追击);
ENM_CaoZhi prefab 与脚手架 PlaceE001 的 BodyContactDamage 初始禁用(伪装期不伤人,
追击期由 e001_chase 能力开启)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-03 16:52:03 +08:00 |
|
 joywayerandClaude Opus 4.8
|
4ce798ea6e
|
refactor(ai): E001 AI 重写为纯决策层,符合设计并委托能力模块
依据小怪设计文档重构 E001 状态机 Idle_Disguise→Skill_Start→Skill_Loop→Skill_End→Move_Patrol:
追击移动/接触伤害全部委托 e001_chase(ContactChaseAbility),AI 不再裸 MoveTo。
新增 ISensor.DetectsPlayer(视线OR近身,对齐设计)、IMover.UseChase/PatrolSpeed、
IEnemyActor.SetPhase(AI 声明阶段、EnemyBase 播动画)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-03 16:51:47 +08:00 |
|
 joywayerandClaude Opus 4.8
|
decd5503fb
|
fix(scaffold): 修复敌人感知 los 槽位——检测层 Nothing→Player、半径 0→8
原 SetupPerceptionSystemSlots 把 los 槽 detectLayer 置 0(Nothing)且 radius=0,
导致视线永远探不到玩家;改为 Player 层 + 半径 8,LOS 检测恢复正常。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-03 16:26:40 +08:00 |
|
 joywayerandClaude Opus 4.8
|
63e241af92
|
fix(ai): AiRuntime 自转换设为no-op(根治死亡双发Died再入) + EnemyBase.OnSpawn复位brain.enabled + 测试
Switch 对 target==当前态直接 no-op(不重跑Exit/Enter),循环改为 if(Switch(t))return true;
OnSpawn 复用时恢复被 QuotaManager 裁剪禁用的 brain。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-03 16:26:28 +08:00 |
|
joywayer
|
d38c6e35bb
|
feat(ai): 脚手架 PlaceE001 一键挂载 EnemyAiBrain 并绑定 id=E001
|
2026-07-03 16:08:32 +08:00 |
|
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
|
11e4c9f1ea
|
refactor(ai): 终审收尾——删死字段/事件转换刷新IsSuspended + 局部事件与双实例独立性测试
|
2026-07-03 14:33:23 +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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|
 joywayerandClaude 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 |
|