Convenience ActorComponent UDP-Wrapper für die Unreal Engine.
Dies ist möglicherweise nicht der sinnvollste Wrapper für Ihren Anwendungsfall, soll aber mit https://github.com/getnamo/SocketIOClient-Unreal mit ähnlichem Workflow koexistieren.
Umschließt die integrierte UDP-Funktionalität von Unreal als Akteurkomponente ( UDPComponent ) mit Sende- und Empfangsfunktionen. Funktioniert über den c++ FUDPNative- Wrapper, der bei Bedarf in eine benutzerdefinierte Nicht-Aktor-Komponentenklasse eingebunden und neu verknüpft werden kann.
Bestätigte Arbeit mit node.js Dgram (siehe Beispiel-Echo-Server-Gist zum Testen).
Discord-Server
Wählen Sie einen Schauspieler Ihrer Wahl. Fügen Sie diesem Akteur eine UDP-Komponente hinzu.
Wählen Sie die neu erstellte Komponente aus und ändern Sie alle Standardeinstellungen
Standardmäßig öffnet die UDP-Actor-Komponente bei Beginn der Wiedergabe automatisch sowohl Sende- als auch Empfangs-Sockets. Wenn Sie nur am Senden interessiert sind, deaktivieren Sie das Kontrollkästchen, um den Empfang automatisch zu öffnen. Deaktivieren Sie umgekehrt das Kontrollkästchen „Automatisch öffnen und senden“, wenn Sie nicht am Senden interessiert sind.
Wenn Sie sich auch in Ihrem eigenen Tempo verbinden/zuhören möchten, deaktivieren Sie beides und stellen Sie die Verbindung manuell her, z. B. über ein Tastenereignis
Die Empfangs-IP von 0.0.0.0 überwacht alle Verbindungen am angegebenen Port.
Sobald Ihr Sende-Socket geöffnet ist (besser vorbereiteter Socket für das Senden, da Sie in UDP keinen Rückruf wie in TCP erhalten), verwenden Sie emit, um einige Daten zu senden. Die vom socket.io-Plugin bereitgestellte UTF8-Konvertierung wird bereitgestellt. Hinweis: Wenn Sie vergessen, Ihren Socket zu öffnen, wird Emit mit den Standardeinstellungen automatisch geöffnet und Emittiert.
gibt true zurück, wenn das Emit verarbeitet wurde. Hinweis: UDP ist unzuverlässig, daher ist dies kein Hinweis darauf, dass die Daten am anderen Ende empfangen wurden. Für eine zuverlässige Verbindung sollten Sie TCP in Betracht ziehen.
Sobald Sie Ihren Empfangssocket geöffnet haben, erhalten Sie Daten zum OnReceivedBytes
-Ereignis
die Sie über socket.io in praktische Strings oder Strukturen konvertieren können (optional und erfordert, dass Ihr Server Daten als JSON-Strings sendet).
Seit Version 0.9.5 wird beim Öffnen eines Sende-Sockets ein gebundener Sende-Port generiert, den Sie zum Abhören von UDP-Ereignissen auf der Empfangsseite verwenden können. Aufgrund des erwarteten Verhaltens sollte dies das NAT-Piercing unterstützen.
Um diese Funktion zu nutzen, können Sie „Sollte den Empfang an den gebundenen Sendeport öffnen“ verwenden, wodurch alle offenen Empfangsvorgänge automatisch an Ihre Sende-IP und den sendegebundenen Port gebunden werden.
Oder wenn Sie dies manuell tun möchten, können Sie das Kontrollkästchen „Sollte automatisch geöffnet werden“ deaktivieren und dann mit eigenen Einstellungen öffnen, z. B. beim Senden eines Socket-Öffnungsereignisses mit dem gebundenen Port.
Jede Version enthält das Socket.io-Client-Plugin. Dieses Plugin soll für eine zuverlässige Steuerung verwendet werden und dann können mit diesem UDP-Plugin Echtzeit-/aktuellste Datenkomponenten Ihres Netzwerks weitergeleitet werden. Erwägen Sie, Ihre Daten mit einem Zeitstempel zu versehen, damit Sie wissen, welche Pakete Sie verwerfen/ignorieren müssen.
Funktioniert sofort.
Wenn Sie dies als Projekt-Plugin verwenden, müssen Sie Ihr reines Blueprint-Projekt in ein gemischtes (BP und C++) konvertieren. Befolgen Sie dazu diese Anweisungen: https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/
Verwenden Sie beispielsweise die Menüoption „Datei“, um Ihr Projekt durch Hinzufügen einer C++-Datei in ein gemischtes Projekt zu konvertieren.
MIT-lizenziert.
Weitgehend inspiriert von https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another.