跳转到内容

SusInventoryTabBar

SusInventoryTabBar

网格标签栏 — 每个 InventoryGridDef 对应一个标签,点击切换 ActiveGridId,悬停支持拖拽经过时切换标签。

SusGame · 库存(商业)

在 Playground 中打开

SusGame · Inventory

属性

没有公开属性。

插槽

没有插槽。

事件

名称字段载荷
GridChangedOnGridChangedstring
TabHoverOnTabHoverstring

样式钩子

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

  • sus-inventory-tabbar
  • sus-inventory-tabbar__tab
  • sus-inventory-tabbar__tab--active
  • sus-inventory-tabbar__tab-icon
  • sus-inventory-tabbar__tab-label

用法

由列表驱动:赋值 GridDefs,设置 ActiveGridId,调用 RebuildTabs(挂载时也会重建)。当你需要明确的背包标签时,接入自定义外壳。

csharp
var tabs = new SusInventoryTabBar();
tabs.GridDefs = new List<InventoryGridDef>
{
    new() { Id = "bag", Name = "Backpack", Icon = "backpack", Width = 10, Height = 8 },
    new() { Id = "loot", Name = "Loot", Icon = "chest", Width = 6, Height = 4 },
};
tabs.ActiveGridId = "bag";
tabs.OnGridChanged += id => { /* SusInventory.SetActiveGrid(id) */ };
tabs.OnTabHover += id => { /* drag-over switch */ };
tabs.RebuildTabs();
xml
<template>
  <sus:SusInventoryTabBar />
</template>

<script>
// No Prop<> — fill GridDefs / ActiveGridId from C#, then RebuildTabs.
void OnGridChanged(string gridId) { /* … */ }
void OnTabHover(string gridId) { /* … */ }
</script>
Prop / API作用
GridDefs标签来源(IdName、可选 Icon
ActiveGridId选中的标签(USS --active
RebuildTabs()清空并重建标签按钮
OnGridChanged点击 → 新的 grid id
OnTabHover指针进入(拖拽经过)

备注

  • 当前 SusInventory 的背包布局使用双网格(主 + 次,按 SortOrder 排序)— 模板中没有标签TabBarHost.sus-inventory__tabs)可能为 null;如需多背包标签,请自行挂载此组件。
  • 可选的 def.Icon 会在标签前渲染一个小的 SusIcon
  • 当外壳负责切换时,优先使用 Session 的 SetActiveGrid / OnTabChanged