Présentation
L'API de processeur/requête Mass simplifiée vise à réduire le texte standard pour la création de logiques de processeur de masse et à améliorer la lisibilité du code ainsi que la sécurité du type. Il s'agit d'une API facultative et le style actuel sera toujours pris en charge.
Création d'un processeur de masse avec QueryExecutor
Créez une structure dans votre fichier .cpp qui hérite d'UE::Mass::FQueryExecutor, suivant cet exemple :
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)
Actuellement, les QueryExecutors doivent être possédés par un UMassProcessor normal. Cette exigence sera supprimée dans une prochaine mise à jour.
Pour créer un UMassProcessor en wrapper :
Créez une classe qui hérite de UMassProcessor.
Ne remplacez pas les fonctions ConfigureQuery ou Execute.
Créez QueryExecutor dans le constructeur de ce processeur, comme suit :
C++UE::Mass::FQueryExecutor::CreateQuery<QueryType>(...)
Contraintes
Actuellement, un UMassProcessor est encore nécessaire pour se connecter avec l'exécuteur de phase de masse. Cela sera résolu dans une prochaine mise à jour.
La déclaration du modèle FQueryDefinition nécessite des définitions complètes des types de requêtes. Par conséquent, le faire dans un fichier d'en-tête doit se limiter aux définitions de requêtes prédéfinies (qui ne font pas partie des en-têtes d'interface plus importants). La meilleure pratique générale consiste à les déclarer de façon privée dans le fichier .cpp où elles sont utilisées.