You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.8 KiB
46 lines
1.8 KiB
# 方案:怪物脚下阴影
|
|
|
|
## 目标
|
|
|
|
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` 的召唤入口,勿在表现层猜来源。
|
|
|