SusEquipmentPanel

装备栏 — 从 InventoryModel.EquipmentSlots 重建 SusEquipmentSlot 子项,按排列模式分组或堆叠。
包
SusGame · 库存(商业)
属性
没有公开属性。
插槽
没有插槽。
事件
| 名称 | 字段 | 载荷 |
|---|---|---|
SlotClick | OnSlotClick | string |
SlotItemClicked | OnSlotItemClicked | SusInventoryItem, string |
SlotItemDragStart | OnSlotItemDragStart | SusInventoryItem, string |
SlotItemDragEnd | OnSlotItemDragEnd | SusInventoryItem |
SlotItemDragging | OnSlotItemDragging | SusInventoryItem, Vector2 |
SlotContextAction | OnSlotContextAction | string, SusInventoryItem |
样式钩子
USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:
sus-equipment-panelsus-equipment-panel__group-labelsus-equipment-panel__group-rowsus-equipment-panel__slots-rowsus-equipment-panel__slots-row--chunksus-equipment-panel--rowssus-equipment-panel--stacksus-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 | 作用 |
|---|---|
Model | EquipmentSlots + ItemDefs 的来源 |
CellSize / ItemMedia / CellLayout | 转发给每个槽位 |
ColumnFilter | left / right / center 或 null(全部) |
Arrange | groups(带标签的换行)| stack(纸娃娃列) |
ShowGroupLabels | 为 false 时隐藏 SlotGroup 标签 |
Rebuild() / SyncSlots() | 完整重建 vs 装备状态同步 |
HighlightSlots / HighlightDropTarget / ClearSlotHighlight | 拖放预览 |
OnSlotClick / OnSlotItem* / OnSlotContextAction | 槽位与物品事件 |
备注
- 在设置
Model.EquipmentSlots并运行Rebuild之前为空(挂载时会调用一次 Rebuild)。 - 需要共享拖放 / 高亮时,优先使用面板而不是手动接入多个 SusEquipmentSlot 实例。
- 外壳承载:背包侧 = 完整面板;装备栏 = 左侧武器(
ColumnFilter=left,Arrange=stack)+ 右侧护甲。