feat(player): 添加玩家阵型保存功能

新增savedFormation字段用于存储玩家的阵型配置,
包括角色ID列表和对应的格子索引位置信息。
```
This commit is contained in:
huadexuan committed 2026-09-29 23:21:44 +08:00
1 parent e127da5416
commit 1abd0de32f
16 files changed
+432 -2930

No files matched your search

+5
View File
@@ -25,6 +25,7 @@
- [2026-09-16 22:18:30] 召唤打断移动:主角点击召唤时必须立即停止移动,调用 SummonerClickMovement.ClearTarget() 来实现。**Why:** 用户要求召唤时即使在移动也要立刻停下。**How to apply:** BeginSummon 开始时停止移动
- [2026-09-17 10:06:34] 召唤师移动后连续召唤动画超时问题:SummonerClickMovement.HandleMovement() 每帧设置 animator.SetInteger("speed", 1) 干扰召唤动画。**Why:** 即使召唤时调用了 ClearTarget(),下一帧 Update 还是会覆盖动画参数。**How to apply:** 召唤期间禁用移动脚本 (clickMovement.enabled = false),召唤完成后重新启用 (enabled = true)。已在 MainCharacterCombat.Summon() 和 FinishSummon() 中实现。
- [2026-09-18 17:16:47] 小游戏阶段优先使用低成本的材质发光方案(Emission 球体 + 一层透明 Additive 光晕),不使用实时灯光、粒子系统和全屏 Bloom。**Why:** 用户关注小程序性能,且项目为内置渲染管线;Bloom 会影响整屏性能。**How to apply:** 后续制作阵营识别光球、传送门能量等发光效果时默认走材质光晕路线,仅在高端设备上考虑 Bloom。
- [2026-09-29 22:28:50] 英雄复活后不寻敌问题:需要在ReviveHero()中调用unitBase.ResetAnchorPosition()重置锚点位置,否则returnToAnchorWhenIdle=true的英雄会尝试返回旧锚点位置导致卡住
### Project
- [2026-08-28 14:26:56] 弓箭手远程箭矢的设计要求:保持发射时高度水平飞行,命中目标后直接结算伤害并销毁,不产生实体物理击退。**Why:** 当前玩法希望远程攻击是命中判定而非物理推动。**How to apply:** 后续调整箭矢、Projectile 或弓箭手攻击逻辑时保持这一行为。
@@ -105,6 +106,10 @@
- [2026-09-29 17:03:15] 召唤师技能系统已完成:技能1群体治疗(CD 20秒,回血100),技能2全屏AOE(CD 20秒,伤害80),UI显示冷却倒计时
- [2026-09-29 17:03:15] 波次系统已扩展到10波,难度曲线:前3波热身,4-7波混合,8-10波精英,波次间隔5-10秒递增
- [2026-09-29 17:03:15] 全局攻击力已降低40%(×0.6),战斗时间延长约1.6倍,平衡游戏节奏
- [2026-09-29 23:09:39] 大乱斗项目网格部署位置:BackZ=-15.0f,ColStep=2.4f,RowStep=2.8f,网格Z范围-15到-3.8,X范围-6到+6,6列5行正方形格子,与摄像机(0,30,-33)45度角正交视图size=16配置统一
- [2026-09-29 23:09:21] 阵型保存功能:FormationManager.StartBattle()保存阵型到PlayerData.json(不跳转场景),BattleFormationSpawner优先从PlayerData.json加载阵型数据,使用characterId和cellIndices数组
- [2026-09-29 23:09:29] 敌人寻敌距离:所有敌人生成脚本(WaveSpawner、DefenseWaveLevelController、EnemyCastleAI、CastleSpawnManager)在生成敌人后设置detectionRange=100f,友方英雄保持默认30f
### Reference
- [2026-09-09 12:23:17] 飞行物脚本 Projectile.cs 负责锁敌追踪、碰撞检测和伤害结算。箭矢预制体 ArrowProjectile_White.prefab 已配置 Projectile 组件和 CapsuleCollider(Is Trigger)。远程单位需在攻击动画松弦帧添加 OnAttackEffect Event,并在 UnitBase 中设置 attackType=RangedProjectile、projectilePrefab、projectileSpawnPoint。