# 方案:怪物脚下阴影 ## 目标 Spine 阴影已从召唤物预制体剔除。战斗中在 `ui_mapParentNode` 独立层挂阴影,保证: - 阴影始终在地图之上、所有怪物之下(不盖住别的怪) - 基地波次出怪用普通阴影;营 / 杨戬等额外召唤用发光阴影 - 阴影大小按怪物皮肤预制体名配置 ## 层级 `mapLayer*` → **`shadowLayer`** → `monsterLayer` → `scoreLayer` `shadowLayer` 由 `CocosBattleMonsterPresenter.bind` 创建并插到 `monsterLayer` 正下方。 ## 普通 / 发光 | 来源 | `UnitMetaComp.glowShadow` | 预制体 | |------|---------------------------|--------| | 基地出怪口波次(`WaveSpawner` 正常出怪) | `false` | `prefab/monster/阴影` | | `spawnExtraEnemy` / `spawnExtraEnemyAtCell`(营、万神幡、技能营地召唤等) | `true` | `prefab/monster/发光阴影` | | Skill 自身周围召唤(`SkillTableSummonExecutor`) | `true` | `prefab/monster/发光阴影` | ## 缩放 表:`CocosBattleMonsterPresenter` 内 `MONSTER_SHADOW_SCALE`(键 = 皮肤预制体名)。 - 示例:`兵 = 0.5`,`龟丞相 = 1` - 未配置:`console.warn` 后用 `1`(以龟丞相为基准),需补表 ## 不挂阴影 `MONSTER_SHADOW_SKIP`:当前含 **黑无常**(特殊表现,不加脚下阴影预制体)。 ## 生命周期 - 生成:与怪一并 `getNode` 挂到 `shadowLayer`,缩放后跟脚底 - 每 tick:`CocosBattleMovementBridge` → `syncAllMonsterShadows`(位置 / active / opacity) - 回收:随怪 `putNode`;挑飞隐藏时阴影一并透明 ## 调参 改阴影大小:编辑 `MONSTER_SHADOW_SCALE`。 改阴影相对脚底高度:编辑 `MONSTER_SHADOW_OFFSET_Y`(像素,往上为正)。 改发光规则:改写入 `glowShadow` 的召唤入口,勿在表现层猜来源。