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.
 
 
 
 
AdLike2048/docs/方案-怪物脚下阴影.md

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 的召唤入口,勿在表现层猜来源。