跳转到内容

SusInventoryItem ​

SusInventoryItem

网格中的物品:图标、稀有度边框、堆叠数、耐久度、拖放、右键菜单。

包

SusGame · 库存(商业)

在 Playground 中打开

SusGame · Inventory

属性

名称类型默认值
IconProp<string>""v-model
RarityProp<string>"common"v-model
StackCountProp<int>1v-model
DurabilityProp<float>100fv-model
IsEquippedProp<bool>falsev-model
IsDraggingProp<bool>falsev-model
IsSelectedProp<bool>falsev-model
ShowNameProp<bool>falsev-model
ItemNameProp<string>""v-model
MediaModeProp<string>"image"v-model

插槽

没有插槽。

事件

名称字段载荷
DragStartOnDragStartSusInventoryItem
DragEndOnDragEndSusInventoryItem
DraggingOnDraggingSusInventoryItem, Vector2
ItemClickedOnItemClickedSusInventoryItem
ContextActionOnContextActionstring, SusInventoryItem

样式钩子 ​

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

  • sus-hidden
  • sus-img
  • sus-img__error
  • sus-img__placeholder
  • sus-img__surface
  • sus-img--rounded-md
  • sus-img--rounded-sm
  • sus-inv-ghost
  • sus-inv-ghost__glyph
  • sus-inv-ghost__image
  • sus-inv-ghost__stack
  • sus-inv-ghost--common
  • sus-inv-ghost--epic
  • sus-inv-ghost--exotic
  • sus-inv-ghost--legendary
  • sus-inv-ghost--rare
  • sus-inv-ghost--uncommon
  • sus-inventory-item
  • sus-inventory-item__durability-fill
  • sus-inventory-item__durability-fill--good
  • sus-inventory-item__durability-fill--low
  • sus-inventory-item__durability-fill--warn
  • sus-inventory-item__durability-track
  • sus-inventory-item__glyph
  • sus-inventory-item__image
  • sus-inventory-item__name
  • sus-inventory-item__rarity
  • sus-inventory-item__stack
  • sus-inventory-item__tip
  • sus-inventory-item--dragging
  • sus-inventory-item--equipped
  • sus-inventory-item--long-press
  • sus-inventory-item--media-icon
  • sus-inventory-item--media-image
  • sus-inventory-item--rarity-common
  • sus-inventory-item--rarity-epic
  • sus-inventory-item--rarity-exotic
  • sus-inventory-item--rarity-legendary
  • sus-inventory-item--rarity-rare
  • sus-inventory-item--rarity-uncommon
  • sus-inventory-item--selected
  • sus-tooltip--inventory

用法 ​

优先通过 SusInventorySession 使用父组件 SusInventory — 不要在没有网格 / model 的情况下放置孤立物品。网格绘制会自动设置 Item / Def / icon 属性。

csharp
// Session mounts SusInventory; items get Def + DnD + tooltip automatically
var session = SusInventorySession.Attach(host);
session.Configure(SusInventorySystemParams.PackedGrid);
session.SetCatalog(defs);
session.SeedItems(seeds);
session.Apply();

独立外观(Storybook / 自定义图标):

csharp
var item = new SusInventoryItem();
item.Icon.Value = "SusGameDemo/Items/sword";
item.Rarity.Value = "rare";
item.StackCount.Value = 3;
item.Durability.Value = 72f;
item.MediaMode.Value = "image"; // image | icon
item.IsEquipped.Value = false;
item.IsSelected.Value = false;
item.Def = itemDef;             // tooltip content
item.OnItemClicked += ii => { /* select */ };
item.OnContextAction += (action, ii) => { /* equip|unequip|delete */ };
xml
<template>
  <sus:SusInventoryItem :Icon="Icon.Value"
                        :Rarity="Rarity.Value"
                        :StackCount="Stack.Value"
                        :Durability="Dura.Value"
                        :MediaMode="Media.Value"
                        :IsEquipped="Eq.Value"
                        :IsSelected="Sel.Value" />
</template>

<script>
public Prop<string> Icon = new("SusGameDemo/Items/sword");
public Prop<string> Rarity = new("rare");
public Prop<int> Stack = new(3);
public Prop<float> Dura = new(72f);
public Prop<string> Media = new("image");
public Prop<bool> Eq = new(false);
public Prop<bool> Sel = new(false);
</script>
Prop / API作用
IconResources 路径(图片)或图标集 key(MediaMode=icon)
Raritycommon…exotic → BEM --rarity-*
StackCount> 1 时显示徽章
Durability0…100;为 100 时隐藏进度条
IsEquipped / IsDragging / IsSelected状态类
MediaModeimage(SusImg 填充)| icon(SusIcon 字形)
Item / DefModel 引用(tooltip + 拖放身份)
ShowName显示 sus-inventory-item__name 名称牌(文字取自 Def.Name,否则为 Def.Id)。默认 false——现有布局保持原样
OnDrag* / OnItemClicked / OnContextAction指针与菜单

悬停提示 ​

使用 SusTooltip(OverlayHost Tooltip 图层)。原生 UITK 的 tooltip 会被清除。 内容来自 ItemDef(名称、稀有度 · 分类 · 子分类、描述、重量、修饰符)。 时机 / 行数由父组件 SusInventorySystemParams 决定。

提示的根节点是悬停触发器——对库存物品而言,是覆盖整个格子的 #ItemTip 包装元素——而不是卡片。它带有 sus-item-tooltip__trigger,并保留 sus-item-tooltip。卡片带有 sus-item-tooltip__card,移入 overlay 宿主后仍保留该类。请通过 .sus-item-tooltip__card 设置卡片样式,这样卡片规则永远不会落到格子上:

css
.sus-item-tooltip__card { min-width: 280px; }
.sus-item-tooltip__card .sus-tooltip__header { padding: 8px 12px; }
.sus-item-tooltip__trigger { /* the cell wrapper, if you need it */ }

卡片的各部分是继承自 SusTooltip 的元素(__header、__header-title、__header-type、__hero、__bars、__footer),通过 .sus-item-tooltip__card .sus-tooltip__<part> 访问。

备注 ​

  • 上下文操作:equip | unequip | delete。
  • 拖动阈值 / ghost host 来自父级网格 / 外壳 — 在拖放前设置 GhostHost。
  • 优先使用 Session 而非孤立物品,以保持 rarity / tooltip / 拖放的一致性。

相关 ​