SusHudUnitRail

顶部单位条——友军居左,敌军居右;按 id 对账子级 SusHudUnitCard。
包
SusGame · HUD(商业)
属性
| 名称 | 类型 | 默认值 | |
|---|---|---|---|
ShowEnemies | Prop<bool> | true | |
Orientation | Prop<string> | "row" |
插槽
没有插槽。
事件
| 名称 | 字段 | 载荷 |
|---|---|---|
UnitSelected | OnUnitSelected | SusHudUnitCard |
样式钩子
USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:
breakpoint-smsus-hud-unit-cardsus-hud-unit-card__portraitsus-hud-unit-card--activesus-hud-unit-railsus-hud-unit-rail__scrollsus-hud-unit-rail__sidesus-hud-unit-rail__side--alliessus-hud-unit-rail__side--enemiessus-hud-unit-rail__spacersus-hud-unit-rail__spacer--emptysus-hud-unit-rail--allies-onlysus-hud-unit-rail--belt-tightsus-hud-unit-rail--columnsus-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 / API | Role |
|---|---|
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 文档查看载荷字段。