Diese Funktion befindet sich im experimentellen Zustand. Du kannst sie ausprobieren, Feedback geben und sehen, was wir planen. Du kannst derzeit kein Projekt veröffentlichen, das Aufschlüsselung verwendet.
Beachte, dass wir für Assets, die mit dem Status Experimentell erstellt wurden, keine Rückwärtskompatibilität garantieren können, dass die APIs für diese Funktionen Änderungen unterliegen und dass wir uns vorbehalten, ganze experimentelle Funktionen oder bestimmte Funktionalität zu entfernen. Sieh dir die Liste bekannter Probleme an, bevor du mit der Funktion arbeitest.
Im System der benutzerdefinierten Gegenstände und Inventare wird eine item_component zu einer Klasse, die definiert, was ein Gegenstand ist und was nicht. Wie du eine Komponente zu deiner Entität hinzufügst, erfährst du unter Arbeiten mit Entitäten und Komponenten.
Entitäten gelten nur dann als Gegenstände, wenn sie eine item_component haben. Ohne diese werden Entitäten nicht ordnungsgemäß zu den Inventaren hinzugefügt und die Funktionalitäten für benutzerdefinierte Gegenstände und Inventare kann beeinträchtigt sein.
Referenzen auf einen „Gegenstand“ beziehen sich direkt auf eine Entität mit einer
item_component.Verweise auf „Inventare“ beziehen sich direkt auf eine Entität mit einer
inventory_component.
Klassendefinition
Durch das Anhängen einer item_component an eine Entität wird die Entität in einen Gegenstand verwandelt. Das bedeutet, dass sie einem Inventar hinzugefügt und durch dieses Inventar verändert werden kann. Die item_component enthält auch die folgende grundlegende Funktionalität:
Kategorien– Ein Array vonitem_category, das zum Sortieren und Charakterisieren verwendet werden kann.Verhalten beim Stapeln von Gegenständen:
StackSize– Eine Ganzzahl, die angibt, wie viele dieser Elemente gestapelt sind.MaxStackSize– Gibt an, wie viele Gegenstände zusammengeführt oder gestapelt werden können, bevor ein neuer Stapel erstellt werden muss. Standardmäßig wird kein Maximum verwendet (zum Beispiel unendliches Stapeln).Abonniere
ChangeStackSizeEvent, um Stapeländerungen zu überwachen.MergeableItemComponentClassesist ein Array, das Subklassen deritem_component. Dies erlaubt jeder Entität, die eine Subklasse innerhalb des Arrays hat, mit dieser Entität zusammengeführt zu werden, um einen Stapel zu bilden.
Die Komponente enthält auch Helferfunktionen, wie
GetParentInventory()undIsEquipped().
Einem Gegenstand kann mit zusätzlichen Komponenten, die verschiedene Funktionen und grundlegendes Fortnite-Gameplay freigeben, mehr Funktionalität verliehen werden. Du kannst auch deine eigenen benutzerdefinierten Verse-Komponenten schreiben. Weitere Informationen findest du in der API-Referenz zu item_component in der Verse-API.
Eine vollständige Liste der Komponenten für benutzerdefinierte Gegenstände und Inventare findest du unter Komponenten.
Beispiel
Gegenstandskomponenten werden von Entitäten benötigt, damit diese als Gegenstände funktionieren können. Der Prefab-Editor hat nur begrenzte bearbeitbare Eigenschaften. Um die Komponente optimal zu nutzen, musst du daher Verse verwenden.
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]
Funktionalität kann ganz einfach zu Gegenständen hinzugefügt werden, indem eine Subklasse von item_component erstellt wird. Das kann genutzt werden, um die grundlegenden Eigenschaften zu ändern oder neue Funktionen und Felder hinzuzufügen, die für dein Erlebnis spezifisch sind.
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}
Hier siehst du ein Prefab-Gegenstand mit der oben gezeigten custom_item_component. Der Gegenstand wird aufgehoben und ein neuer respawnt. Du kannst das Stapelverhalten im Inventar sehen.