Esta función se encuentra en estado experimental para que puedas probarla, hacernos llegar tus comentarios y ver lo que estamos planeando. Actualmente no puedes publicar un proyecto que utilice itemización.
Ten en cuenta que no garantizamos la compatibilidad con versiones anteriores de los recursos creados en la fase experimental, que es posible que realicemos cambios en las API de estas funciones y que eliminemos funciones experimentales completas o funcionalidades específicas según nuestro criterio. Consulta la lista de problemas conocidos antes de empezar a trabajar con la función.
En el sistema de elementos e inventarios personalizados, item_component se convierte en una clase que define lo que es y no es un elemento. Si quieres saber cómo añadir un componente a tu entidad, consulta Cómo trabajar con entidades y componentes.
Las entidades solo se consideran elementos si tienen un item_component. Sin él, las entidades no se añadirán correctamente a los inventarios y es posible que muchas funciones de elemento personalizado e inventarios no funcionen correctamente.
Las referencias a un “elemento” se refieren directamente a una entidad con un
item_component.Las referencias a “inventarios” se refieren directamente a una entidad con un
inventory_component.
Definición de clase
Al adjuntar un item_component a una entidad, la entidad se convierte en un elemento. Esto significa que puede añadirse a un inventario y manipularse a través de inventarios. El item_component también contiene la siguiente funcionalidad básica:
Categorías- Una matriz deitem_categoryque se puede utilizar para ordenar y caracterizar.Comportamiento de apilamiento de objetos:
StackSize- Entero que indica cuántos de estos elementos están apilados.MaxStackSize- Cuántos elementos se pueden fusionar o apilar antes de que se deba crear una nueva pila. El valor por defecto es sin máximo (por ejemplo, apilamiento infinito).Suscríbete a
ChangeStackSizeEventpara supervisar los cambios de la pila.MergeableItemComponentClasseses una matriz que puede contener subclases de elitem_component. Esto permite que cualquier entidad con una subclase dentro de la matriz se fusione con esta entidad para formar una pila.
El componente también contiene funciones auxiliares, como
GetParentInventory()yIsEquipped().
Se pueden atribuir más funciones a un elemento con componentes adicionales que expongan diferentes funciones básicas y jugabilidad de Fortnite. También puedes escribir tus propios componentes personalizados de Verse. Si quieres más información, consulta la referencia de la API item_component de la API de Verse.
Consulta Componentes para ver una lista completa de los componentes de objetos personalizados e inventarios.
Ejemplo
Los componentes de elementos son necesarios para que las entidades funcionen como elementos. El editor de prefabricados tiene propiedades editables limitadas, por lo que para sacar el máximo partido al componente tendrás que utilizar Verse.
using { /Fortnite.com/Devices }
using { /Verse.org/SceneGraph }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Itemization }
# Helper function that gets the first descendant inventory component from an agent.
# This will be the root inventory.
GetAgentInventory(Agent:agent)<decides><transacts>:inventory_component=
TargetInventory := (for (I : Agent.FindDescendantComponents(inventory_component)) { I })[0]
Se puede añadir fácilmente funcionalidad a los elementos creando una subclase item_component. Puede ser para modificar las propiedades básicas o para añadir nuevas funciones y campos específicos a tu experiencia.
custom_item_component := class(item_component) :
# We could populate the Categories array with Fortnite and/or custom item categories.
Categories<override>:[]item_category = array{}
# By adding itself to the MergeableItemComponentClasses, it allows entities with this item_component to merge in inventories.
MergeableItemComponentClasses<override>:[]castable_subtype(item_component) = array{custom_item_component}
Aquí puedes ver un objeto prefabricado que utiliza el componente custom_item_component mostrado arriba. El elemento se recoge y se genera uno nuevo. Puedes ver el comportamiento del apilamiento en el inventario.