跳转到内容

SusAbilityBar

SusAbilityBar

水平技能栏 — 重建子级 SusAbilitySlot,从 SusHudAbilityData 填充数据,非按住模式下数字键 1…N 可激活对应技能。

SusGame · HUD(商业)

在 Playground 中打开

SusGame · HUD

属性

名称类型默认值
SlotCountProp<int>4
UseHoldProp<bool>false

插槽

没有插槽。

事件

名称字段载荷
AbilityActivatedOnAbilityActivatedint
AbilityHoldCompleteOnAbilityHoldCompleteint

样式钩子

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

  • breakpoint-sm
  • sus-ability-bar

用法

在代码中通过 SetAbilities 驱动槽位内容。XML 只设置布局 / 模式相关的属性。

csharp
var bar = new SusAbilityBar();
bar.SlotCount.Value = 4;
bar.UseHold.Value = false;
bar.OnAbilityActivated += index => { /* cast / spend AP */ };
bar.OnAbilityHoldComplete += index => { /* charged cast */ };

bar.SetAbilities(new List<SusHudAbilityData>
{
    new() { Id = "strike", Icon = "sword", Title = "Strike", Keybind = "1" },
    new() { Id = "heal", Icon = "plus", Title = "Heal", Cooldown01 = 0.4f, CooldownText = "2s" },
    new() { Id = "shield", Icon = "shield", Title = "Guard", Disabled = true },
});
xml
<template>
  <sus:SusAbilityBar :SlotCount="Slots.Value"
                     :UseHold="Hold.Value"
                     @ability-activated="OnAbilityActivated"
                     @ability-hold-complete="OnAbilityHoldComplete" />
</template>

<script>
public Prop<int> Slots = new(4);
public Prop<bool> Hold = new(false);
void OnAbilityActivated(int index) { /* … */ }
void OnAbilityHoldComplete(int index) { /* … */ }
// Call SetAbilities / UpdateAbility from combat code after mount.
</script>
Prop / API作用
SlotCount槽位数量(1…10,默认 4
UseHold将按住模式传播到每个槽位
SetAbilities(list)调整大小并从 SusHudAbilityData 填充
UpdateAbility(i, data)更新单个槽位
GetSlot(i)访问子级 SusAbilitySlot
OnAbilityActivated被激活槽位的索引
OnAbilityHoldComplete按住完成后的索引

备注

  • 在调用 SetAbilities(或宿主 / Assembler 填充槽位)之前为空。挂载前调用会排队,直到 Mounted
  • SusHudAbilityDataIdIconTitleDescriptionCooldown010 表示就绪 … 1 表示满冷却)、CooldownTextDisabled,以及可选的 Keybind(为空 → 索引+1)。
  • 当需要统一的按键约定时,优先使用该组件,而不是手动拼装大量 SusAbilitySlot 实例。