跳转到内容

SusEquipmentPanel

SusEquipmentPanel

装备栏 — 从 InventoryModel.EquipmentSlots 重建 SusEquipmentSlot 子项,按排列模式分组或堆叠。

SusGame · 库存(商业)

在 Playground 中打开

SusGame · Inventory

属性

没有公开属性。

插槽

没有插槽。

事件

名称字段载荷
SlotClickOnSlotClickstring
SlotItemClickedOnSlotItemClickedSusInventoryItem, string
SlotItemDragStartOnSlotItemDragStartSusInventoryItem, string
SlotItemDragEndOnSlotItemDragEndSusInventoryItem
SlotItemDraggingOnSlotItemDraggingSusInventoryItem, Vector2
SlotContextActionOnSlotContextActionstring, SusInventoryItem

样式钩子

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

  • sus-equipment-panel
  • sus-equipment-panel__group-label
  • sus-equipment-panel__group-row
  • sus-equipment-panel__slots-row
  • sus-equipment-panel__slots-row--chunk
  • sus-equipment-panel--rows
  • sus-equipment-panel--stack
  • sus-equipment-slot

用法

优先通过 SusInventorySession 使用父组件 SusInventory — 外壳会挂载并同步该面板。独立使用时:赋值 Model,然后调用 Rebuild / SyncSlots

csharp
var panel = new SusEquipmentPanel();
panel.Model = model;
panel.CellSize = 48f;
panel.ItemMedia = "image";   // image | icon
panel.CellLayout = "grid";   // grid | slots
panel.ColumnFilter = "right"; // null = all; left | right | center
panel.Arrange = "groups";     // groups | stack
panel.ShowGroupLabels = true;
panel.IconResolver = myResolver;
panel.OnSlotClick += slotId => { /* unequip / flyout */ };
panel.OnSlotItemClicked += (item, slotId) => { /* select */ };
panel.Rebuild();
xml
<template>
  <sus:SusEquipmentPanel />
</template>

<script>
// No Prop<> on the panel — drive Model / Arrange / ColumnFilter from C#.
// Wire OnSlot* after mount; call Rebuild when EquipmentSlots change.
</script>
Prop / API作用
ModelEquipmentSlots + ItemDefs 的来源
CellSize / ItemMedia / CellLayout转发给每个槽位
ColumnFilterleft / right / center 或 null(全部)
Arrangegroups(带标签的换行)| stack(纸娃娃列)
ShowGroupLabels为 false 时隐藏 SlotGroup 标签
Rebuild() / SyncSlots()完整重建 vs 装备状态同步
HighlightSlots / HighlightDropTarget / ClearSlotHighlight拖放预览
OnSlotClick / OnSlotItem* / OnSlotContextAction槽位与物品事件

备注

  • 在设置 Model.EquipmentSlots 并运行 Rebuild 之前为空(挂载时会调用一次 Rebuild)。
  • 需要共享拖放 / 高亮时,优先使用面板而不是手动接入多个 SusEquipmentSlot 实例。
  • 外壳承载:背包侧 = 完整面板;装备栏 = 左侧武器(ColumnFilter=leftArrange=stack)+ 右侧护甲。