跳转到内容

SusHudTargetPanel ​

SusHudTargetPanel

目标 chip 行——图标 + 命中率(+ 可选标签);点击 / Enter 选择目标 id。

包

SusGame · HUD(商业)

在 Playground 中打开

SusGame · HUD

属性

名称类型默认值
TitleProp<string>"TARGETS"
TargetsProp<List<SusHudTargetData>>[]来自预设
SelectedIdProp<string>""
HideWhenEmptyProp<bool>false

插槽

没有插槽。

事件

名称字段载荷
TargetSelectedOnTargetSelectedstring

样式钩子 ​

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

  • sus-hidden
  • sus-hud-target-panel
  • sus-hud-target-panel__icon
  • sus-hud-target-panel__item
  • sus-hud-target-panel__item--selected
  • sus-hud-target-panel__label
  • sus-hud-target-panel__pct
  • sus-hud-target-panel__row
  • sus-hud-target-panel__title

用法 ​

列表驱动:用 SetTargets 从代码填充。XML 只负责外框(固定的 "TARGETS" 标题)。

csharp
var panel = new SusHudTargetPanel();
panel.OnTargetSelected += id => { /* lock target */ };

panel.SetTargets(new List<SusHudTargetData>
{
    new() { Id = "e1", Icon = "crosshair", Label = "Raider", HitChance01 = 0.72f, Selected = true },
    new() { Id = "e2", Icon = "crosshair", Label = "Scout", HitChance01 = 0.45f },
});

panel.UpdateHitChance("e1", 0.80f);
panel.SetSelected("e2");
xml
<template>
  <sus:SusHudTargetPanel @target-selected="OnTargetSelected" />
</template>

<script>
void OnTargetSelected(string id) { /* … */ }
// Call SetTargets / UpdateHitChance / SetSelected from combat code after mount.
</script>
Prop / APIRole
SetTargets(list)用 SusHudTargetData 重建 chip 列表
UpdateHitChance(id, hitChance01)只更新命中率百分比,不整体重建
SetSelected(id)切换 --selected 类
ClearTargets()移除所有 chip
OnTargetSelected被选中目标的 Id(string)

备注 ​

  • 在调用 SetTargets 前为空(挂载前的调用会排队,等到 Mounted 后执行)。
  • SusHudTargetData:Id(必填)、Icon(默认 crosshair)、Label、HitChance01(0…1 → N%)、Selected。
  • 键盘操作:获得焦点的 chip 可通过 Enter / Space 激活。