feat(gameplay): 更新单位属性和材质配置

- 调整多个单位的基础生命值和攻击力数值平衡
- 修改CoreBattleGround材质的纹理缩放比例
- 更新地砖材质颜色为白色
- 优化纹理资源设置,调整最大纹理尺寸并添加PlayableAds平台支持
- 修复弓箭手技能目标查找逻辑,改用统一的敌人检测方法
- 为水晶矿添加中立阵营设置和光球视觉效果同步
- 调整预制体中的全局缩放参数
- 为狼人和石巨人添加NavMeshAgent组件支持
- 优化水晶矿血条显示位置计算方式
```
This commit is contained in:
huadexuan committed 2026-09-20 21:52:31 +08:00
1 parent 0e7de5f885
commit 53d95802e5
448 files changed
+133333 -472

No files matched your search

+16 -1
View File
@@ -67,7 +67,22 @@
- [2026-09-17 16:52:28] 已于2026-09-17新建分支转向拆家版玩法(以《召唤之战 - 核心玩法拆家版.md》V1.1为准),旧《召唤之战-核心玩法.md》召唤师对决文档作废。拆家版无主角:只做“选目标+点卡出兵”,单位从己方城堡出生并永久绑定目标。Why: 原地图太小导致打据点的兵被中路兵吸引成大混战。场景现状(按参考图十字布局定稿):CoreBattleTest平台40x70(Z 0~70),我方城堡Z=8/敌方城堡Z=62,纵向通道宽10(X±5)、横向通道高8(Z 31~39),四角用4块障碍物Cube封锁(14x2x31,材质ObstacleBlock.mat,后续可换岩石/树林模型),中央圆柱已删;水晶矿(-14,1,35)/随机出兵点(14,1,35)为金矿模型占位(scale2),相机正交(55°, size36, pos(0,70,-14)),NavMesh已重烘;主角/GoldManager/GoldUI/BuildingPlacementManager已删。后续按拆家版开发:目标按钮UI→出生目标绑定→红蓝进度条据点系统。
- [2026-09-18 17:17:04] 拆家版地图路线为"四边菱形外环 + 中央十字路网":我方主基地、水晶矿、敌方主基地、随机出兵点四点构成菱形,中央交叉区向四个顶点各连一条快捷路。Why: 用户希望主基地到资源点有直达路线并体现分路玩法。**How to apply:** 后续地图贴图、障碍物摆放和寻路区域设计必须同时保留四条外环边线和四条中心连接线,不能退化成单一十字或平行多路。
- [2026-09-18 17:17:26] 主基地采用"一套共用模型 + 独立阵营视觉部件"方案:城堡主体、出兵门、炮台结构红蓝共用,仅中央核心、出兵门能量膜、炮台能量和徽记按 teamId 切换材质颜色。Why: 避免两套模型比例/挂点不一致并减少维护成本。**How to apply:** 后续制作或替换主基地资产时保持共用结构,阵营区分只走 TeamVisual 子节点材质。
- [2026-09-18 18:01:14] 水晶矿场景模型根节点使用100倍缩放,挂载世界空间UI时必须按transform.lossyScale反向补偿Canvas局部缩放,否则争夺血条会放大到覆盖屏幕。水晶矿初始50/50争夺状态的光球应在Start阶段再次强制设为白色,避免AdjustableGlowOrb默认蓝色覆盖初始化结果。
- [2026-09-18 22:37:49] 水晶矿血条/光球方案(2026-09-18 定稿):争夺血条 Canvas 在运行时创建于场景根(不挂水晶矿子级,规避 100 倍根缩放),血条高度由所有子 Renderer 世界包围盒顶部自动计算 + heightOffset 余量。AdjustableGlowOrb 同时控制主体球(_Color/_EmissionColor)和 GlowHalo 子渲染器(Legacy Additive 用 _TintColor + haloAlpha≈0.25)。CrystalMineCapture 新增 autoSetNeutralTeam 开关(拆家版设为 false,避免单位自动锁敌水晶矿);新增可选 riftVisual 字段同步裂缝颜色。随机出兵点也复用 CrystalMineCapture + RiftPortalVisual + BoxCollider。
- [2026-09-18 20:13:29] 随机出兵点(拆家版)已复用水晶矿争夺系统:根节点挂 CrystalMineCapture(新增可选 riftVisual 字段)+ BoxCollider(8.3×6.5×8.3,按世界包围盒/100 配局部值,供飞行物命中),UnitTeam 在 Awake 自动补 teamId=2 中立。裂缝视觉 RiftPortalVisual 随争夺进度白/红/蓝变色(CrystalMineCapture.RefreshVisuals 同步驱动)。注意:PortalEnergyVisual(UV 滚动动画)已从随机出兵点能量膜移除但脚本保留——城堡出兵门能量膜仍在用它,勿删脚本;两个 [ExecuteAlways] 视觉脚本不要同时挂同一 Renderer(会互抢 MPB)。
- [2026-09-19 09:52:40] 拆家版寻敌系统(2026-09-18):UnitBase.FindNearestOpponent() 改为两阶段——Phase1 在 detectionRange(默认25m)内搜索敌方战斗单位(跳过 Building Tag),Phase2 无敌方单位时搜索有 UnitTeam 的敌方建筑物(不限距离)。四个建筑统一挂 "Building" Tag:蓝/红城堡有 UnitTeam(teamId 0/1)+ BoxCollider,水晶矿/随机出兵点无 UnitTeam(中立不被自动锁敌)。旧 detectRange 字段已删除,替换为 detectionRange。NavMeshSurface 烘焙体积曾只覆盖 Z<40 导致红堡不可达,已扩为 center=(0,0,36.7) size=(50,10,70)。
- [2026-09-18 22:37:49] 拆家版出兵系统(2026-09-18):CastleSpawnManager 单例管理从城堡出兵,SummonCardButton.OnClick/CanAfford 优先走 CastleSpawnManager(在 SummonerDuelManager 之前)。出兵点是城堡子对象(localPosition 需除以100补偿缩放),带绿色 Marker 球体需注意局部缩放反算。ManaSystem 能量系统直接复用。场景 CoreBattleTest 中无 SummonerDuelManager/MainCharacterCombat。
- [2026-09-19 09:52:40] 拆家版建筑攻击修复(2026-09-18):单位不攻击建筑的根因是城堡无碰撞体+中心点距离永远超出判定。修复:IsWithinAttackReach 对 Building tag 目标用 Collider.ClosestPoint 计算到建筑表面的水平距离(不用半径扣减,会误判隔空攻击),攻击缓冲从 1.5 调到 0.2(用户要求贴近)。两座城堡已加 BoxCollider(编辑态保存,世界尺寸约12x12,局部值=世界值/100)。注意:用户移动建筑时碰撞体/序列化字段可能丢失,出问题先查碰撞体是否存在。
- [2026-09-19 19:15:25] 拆家版双阵营攻击标志系统(2026-09-19 定稿含"出生即使命"):AttackTargetController 维护 blueTarget/redTarget 独立标志(各默认敌方主城堡,名字+LocalPlayerTeamId 反推,0.5s缓存重查)。点击建筑只切本地玩家阵营标志(点己方主城无效);双箭头并排显示(同建筑±1.1错开),颜色=标志所属阵营。单位使命快照:UnitBase.Start() 时 missionTarget = GetTeamTarget(teamId) 一次性快照,之后标志变化不影响场上单位(支持分兵);FindTarget() = Phase1 detectionRange内敌方单位 → Phase2 missionTarget(销毁时兜底敌方主城);到达使命建筑是己方阵营→该单位 missionTarget 改为敌方主城(不碰全局标志)。水晶矿/混沌之门根节点 CapsuleCollider(4.2/3.6米半径)。GetTeamTarget 仅供出生快照用,ResetTeamTargetToMainCastle 已删。
- [2026-09-19 20:59:31] UnitBase 根运动架构(2026-09-19 定稿):applyRootMotion 全局 true,OnAnimatorMove() 统一协调——走路(agent 开):只叠加动画侧向摇摆(垂直朝向分量)+ root 转身差量,前向分量丢弃防双倍速,transform 变更后同步 navAgent.nextPosition;攻击/技能(agent 已禁用):根运动全量位移(前冲/后撤,垂直分量丢弃防漂离地面)+ 转身。死代码已删:CC 移动分支/applyGravity/getVerticalVelocity/ComputeSeparation/GetHorizontalCollisionRadius/randomTargetPos/range/gravity/useRootMotion/separationRadius/separationWeight/targetPos/startPos/controller 字段——所有单位统一 NavMeshAgent 寻路(CharacterController 从架构移除,但保留单位 Prefab 上的 CC 组件用于受击碰撞检测?不——CC 已不 disable 也不 enable,Projectile 靠它命中)。场景蓝色怪物实例已修:删 CC 加 NavMeshAgent,Y 归位 0.16。走路摇摆是烘焙在根骨骼上的动画,root motion 关闭时身体锁死只剩脚动("脚扭腰不动"现象)。
- [2026-09-19 19:48:47] 拆家版NavMesh平坦化(2026-09-19):建筑模型网格被烘进NavMesh形成≤45°斜坡导致单位被抬上建筑(Y到2.15)。修复:创建Buildings层(layer 8),四个建筑(两城堡/水晶矿/混沌之门)整棵层级改入该层,NavMeshSurface layerMask排除Buildings(-257)后重烘→NavMesh恒定平坦Y=0.16。另在场景根级创建4个空物体"XX-寻路障碍"挂NavMeshObstacle(carving=true需显式设置,capsule半径=建筑CapsuleCollider世界半径)运行时挖空建筑足迹防单位穿模。障碍物体放场景根级而非建筑子级,避免100倍缩放歧义。平台顶面y=0.09,NavMesh烘焙时注意平台移动后必须重烘。
- [2026-09-19 22:17:52] 单位贴地方案调整:`UnitBase` 不再根据 Renderer 包围盒最低点自动计算或延迟重设 `NavMeshAgent.baseOffset`,统一固定为 0,避免模型原点与脚底偏移被误当作寻路高度导致角色运行时整体抬升。
- [2026-09-19 22:38:39] 2026-09-19 拆家版规则更新:水晶矿占领后按固定间隔为归属方增加1点能量,不改变基础能量回复速度;混沌之门自动产兵按当前出战卡组概率抽取,低费用卡高概率、高费用卡低概率。设计文档已同步,具体间隔和概率留待战斗测试。
- [2026-09-20 13:36:59] 2026-09-20 三路测试布局已在 CoreBattleTest.scene 临时搭建:蓝堡/红堡居中,水晶矿 X=-10、混沌之门 X=10、Z=35;两条临时长方体屏障位于 X=-5 和 X=5,均带 BoxCollider 与 NavMeshObstacle carving,形成左/中/右三条路。
- [2026-09-20 20:44:52] 2026-09-20 固定卡组与轮转已接入 CoreBattleTest:8卡组为人类士兵、弓箭手、盾卫、精锐士兵、法师、狂暴狼人、石巨人、弓箭猎人;底部显示4槽,出牌成功后当前卡进入队尾并由队列补下一张。BattleDeckCycle 挂在 CastleSpawnManager。当前弓箭猎人、狂暴狼人、石巨人的 CharacterData.unitPrefab 仍为空,暂不能正常出兵。
- [2026-09-20 21:43:39] 2026-09-20 卡牌故障修复:8卡组中的弓箭猎人、狂暴狼人、石巨人已分别绑定第二章对应 Prefab,轮转不会再因 unitPrefab 为空而卡死;CastleMageSkill、ArcherSkill、ArcherHunterSkill 和 UnitBase 已移除废弃的 GetOpponentTag/OpponentTag,统一使用 UnitTeam 阵营判断。
### Reference
- [2026-09-09 12:23:17] 飞行物脚本 Projectile.cs 负责锁敌追踪、碰撞检测和伤害结算。箭矢预制体 ArrowProjectile_White.prefab 已配置 Projectile 组件和 CapsuleCollider(Is Trigger)。远程单位需在攻击动画松弦帧添加 OnAttackEffect Event,并在 UnitBase 中设置 attackType=RangedProjectile、projectilePrefab、projectileSpawnPoint。