跳转到内容

SusHudUnitRail

SusHudUnitRail

顶部单位条——友军居左,敌军居右;按 id 对账子级 SusHudUnitCard

SusGame · HUD(商业)

在 Playground 中打开

SusGame · HUD

属性

名称类型默认值
ShowEnemiesProp<bool>true
OrientationProp<string>"row"

插槽

没有插槽。

事件

名称字段载荷
UnitSelectedOnUnitSelectedSusHudUnitCard

样式钩子

USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:

  • breakpoint-sm
  • sus-hud-unit-card
  • sus-hud-unit-card__portrait
  • sus-hud-unit-card--active
  • sus-hud-unit-rail
  • sus-hud-unit-rail__scroll
  • sus-hud-unit-rail__side
  • sus-hud-unit-rail__side--allies
  • sus-hud-unit-rail__side--enemies
  • sus-hud-unit-rail__spacer
  • sus-hud-unit-rail__spacer--empty
  • sus-hud-unit-rail--allies-only
  • sus-hud-unit-rail--belt-tight
  • sus-hud-unit-rail--column
  • sus-hud-unit-rail--tight

用法

列表驱动:SetUnits / SetAllies / SetEnemies。XML 只切换敌方一侧的显示。

csharp
var rail = new SusHudUnitRail();
rail.ShowEnemies.Value = true;
rail.OnUnitSelected += card => { /* select */ };

rail.SetUnits(new List<SusHudUnitCardData>
{
    new() { Id = "a1", Name = "Mara", Ally = true, Active = true, ImageSrc = "portraits/mara" },
    new() { Id = "e1", Name = "Raider", Ally = false, Icon = "units/raider" },
});

rail.SetActiveUnit("a1");
rail.UpdateUnit(new SusHudUnitCardData { Id = "a1", Name = "Mara", Hp = 30f, MaxHp = 50f, Ally = true });
rail.SetUnitEffects("a1", new List<SusStatusEffectData>
{
    new() { Id = "burn", Icon = "flame", IsDebuff = true, TurnsLeft = 2 },
});
xml
<template>
  <sus:SusHudUnitRail :ShowEnemies="ShowEnemies.Value"
                      @unit-selected="OnUnitSelected" />
</template>

<script>
public Prop<bool> ShowEnemies = new(true);
void OnUnitSelected(SusHudUnitCard card) { /* … */ }
// Call SetUnits / SetAllies / SetEnemies after mount.
</script>
Prop / APIRole
ShowEnemies隐藏敌方一侧 + 占位间隔(部署阶段 / 仅友军场景)
SetUnits(list)Ally 拆分到两侧
SetAllies / SetEnemies局部更新单侧
SetActiveUnit(id)切换匹配卡片的 Active
UpdateUnit(data)修补已有的某张卡片
SetUnitEffects(id, effects)转发给对应卡片
FindCard / ClearUnits查找 / 清空
AllyCards · EnemyCards实时卡片列表
OnUnitSelected从子级 OnSelected 冒泡而来

备注

  • 在调用填充 API 前为空——原地对账可避免 SusImg / 图标的重复挂载抖动。
  • 对账时 SetUnits 会按所在一侧强制设置 Ally 为 true/false。
  • 配合 SusHudUnitCard 文档查看载荷字段。