UE4 | Inventar für Multiplayer # 3 | Interaktionsstruktur




In diesem Artikel werden wir uns die Inventarstruktur ansehen, die ich auf mein Multiplayer-Projekt angewendet habe. Dieser Abschnitt ist sehr klein und enthält keinen Code.


Das Inventar selbst ist eine Komponente, die nicht nur für den Charakter verwendet wird , sondern auch für jedes Objekt im Spiel, das je nach Szenario ein Speicher für Gegenstände sein kann. Zum Beispiel: Truhe, Kiste, Kiste, Schrank usw.




Diese Komponente enthält ein TArray , dessen Elemente ein Minimum an erforderlichen Informationen speichern:


  1. Die Kennung des Objekts in Form eines GameplayTag . Wie ich bereits sagte, ist GameplayTag bequemer als beispielsweise FName , da es das Fehlerrisiko erheblich verringert.
  2. Die Anzahl der Objekte im Steckplatz, die durch die Variable int angegeben werden.
  3. Kategorie des Objekts, um zu verstehen, wie es angewendet werden kann. Zu diesem Zweck können Sie anstelle von Enum GameplayTagsContainer verwenden , mit dem wir das Objekt bei Bedarf vielen Typen gleichzeitig zuordnen können.
  4. Einzigartige Eigenschaften des Objekts, die als Struktur aus einer Reihe von GameplayTag und Float gespeichert werden. Hier können Sie sowohl Parameter als auch Modifikatoren speichern.

In dieser Inventarstruktur gibt es keine Links zu den Objekten selbst, da sie nach dem Speichern und Laden des Spiels auf Bereiche verweisen, in denen bereits andere Daten gespeichert sind. Daher benötigen Sie ein Tool, mit dem Sie alle Objekte nach dem Laden des Spiels wiederherstellen (neu erstellen) können. Hier kommt DataAsset zur Rettung , das immer auf der Serverseite verfügbar ist (weil wir es in unserem Fall über GameMode verbunden haben ) und bereit ist, das Objekt auf der Bühne zu platzieren.


Die Inventarkomponente enthält auch die Logik zum Entfernen und Hinzufügen der erforderlichen Anzahl von Objekten sowie die Logik zum Füllen der Slots. Alle im Container gestarteten Funktionen sollten nur auf der Serverseite funktionieren.


Die Struktur des Zusammenspiels von Inventar und Datenbank ist wie folgt

Einzigartige Eigenschaften des Objekts, wie zusätzliche Komponenten und Logik, können einfach mit C ++ und / oder Blueprint konfiguriert werden.


Im nächsten Abschnitt werde ich zeigen, wie Sie die erstellte Komponente mit Character oder einem anderen Objekt verbinden können.


Jede konstruktive Kritik ist willkommen. Am besten durch Vorschläge unterstützt.


PS In den ersten beiden Artikeln wurden erklärende Bilder hinzugefügt.

Source: https://habr.com/ru/post/de419347/


All Articles