Demo1 Inventories
Examples/Demo1 Inventories/InventoriesDemo.unity
Este es el ejemplo más básico del asset. Muestra un inventario sin lógica de juego separada, economía o integración con el mundo.
Qué muestra la demo
- una lista simple de
ItemExampleSO ListInventoryDataBinding<ItemExampleSO, ItemAdapterSoAdapter>- carga de una lista en
UniversalInventory - sincronización de cambios de UI de vuelta a los datos
- overrides locales de
CanStartDragyCanDrop
Cómo está estructurada
Partes principales:
ItemExampleSO.cs— datos del itemAdapters/ItemAdapterSoAdapter.cs— adapter de la capa UIDataBindings/ItemsSOInventoryDataBinding.cs— binding entre la lista de datos y el inventarioSO/Rules/*— preset de reglas de ejemplo
flowchart LR
Data["List<ItemExampleSO>"] <--> Binding["ItemsSOInventoryDataBinding"] <--> UI["UniversalInventory"]
El binding lee la lista, crea adapters y sincroniza los cambios de vuelta a la misma lista.
Cómo funciona
GetItems()devuelve la listaitems.ReloadUI()construye los stacks iniciales de UI desde esa lista medianteCreateAdapter(...). Puedes llamarlo cuando cambien los datos para redibujar el inventario, peroListInventoryDataBindingno conserva posiciones.- Después de una transferencia exitosa, el inventario llama a
AddToData(...)yRemoveFromData(...)del binding, actualizando la lista original.
El ejemplo también muestra dónde añadir restricciones locales simples:
CanStartDrag(...)— bloquear el drag desde un inventario concretoCanDrop(...)— bloquear el drop en un inventario concreto
Cuándo usar este ejemplo como base
- necesitas un primer inventario sin un modelo complejo