Übersicht
Die vereinfachte Masse-Prozessor/Query-API zielt darauf ab, die Standardeinstellung für die Erstellung von Masse-Prozessor-Logik zu verringern und die Lesbarkeit des Codes sowie die Typsicherheit zu erhöhen. Dies ist eine optionale API und der aktuelle Stil wird weiterhin unterstützt.
Erstellen eines Masse-Prozessors mit dem QueryExecutor
Erstellen Sie eine Struktur in Ihrer .cpp, die von UE::Masse::FQueryExecutor nach diesem Beispiel erbt:
struct FExampleExecutor : public UE::Mass::FQueryExecutor
{
UE::Mass::FQueryDefinition<
UE::Mass::FMutableFragmentAccess<FExampleFragmentA>,
UE::Mass::FConstSubsystemAccess<UExampleSubsystem>,
UE::Mass::FMassTagRequired<FExampleTag>
> Accessors{ *this };
virtual void Execute(FMassExecutionContext& Context)
Aktuell müssen QueryExecutors einem regulären UMassProcessor gehören. Diese Anforderung wird in einem zukünftigen Update entfernt.
So erstellen Sie einen Wrapper-UMassProcessor:
Erstellen Sie eine Klasse, die von UMassProcessor erbt.
Überschreiben Sie nicht die ConfigurationQuery- oder Execute-Funktionen.
Erstellen Sie den QueryExecutor folgendermaßen im Constructor für diesen Prozessor:
C++UE::Mass::FQueryExecutor::CreateQuery<QueryType>(...)
Einschränkungen
Aktuell wird noch ein UMassProcessor für das Interface mit dem Masse-Phase-Executor benötigt. Dies wird in einem zukünftigen Update behoben.
Die Deklaration der FQueryDefinition-Vorlage erfordert vollständige Definitionen der Abfragetypen. Daher sollte dies in einer Header-Datei auf vordefinierte Abfragedefinitionen (nicht Teil größerer Interface-Header) beschränkt werden. Allgemein ist es Best Practice, diese privat in der .cpp-Datei zu deklarieren, in der sie verwendet werden.