**GenericMessagePlugin(GMP)
https://www.unrealengine.com/marketp…sageplugin-gmp
overview
unified access to C++ blueprint script, seamlessly use
zero cost abstraction , C++ layer has very little performance loss
communications between C++ and scripts(blueprints) also has minimize performance loss
dynamic type checking
avoid code dependencies and unnecessary time-consuming compilation
you can turn off the dynamic type checking for release versions
blueprint self-explanatory, base on MessageTag
provides custom blueprint nodes to facilitate blueprint message communication
providing type safe dynamic invocation (C++)
Additional highlights
SendWorldMessage / SendObjectMessage, support filtering by World or Object
a variety of Listen support, support for automatic adaptive callback function
watch times preset, and ‘stop listening’ line
debug display when blueprint node is debugged
Instructions
The Blueprint
Use NotifyMessage /ListenMessage blueprint node directly The message type is then selected by a tree drop-down
Create a message in the blueprint
Display during debugging
show listener on the notify node
shows the listening state, as well as historical callback on the listen node
Send message
FGMPHelper::SendObjectMessage/ FGMPHelper::NotifyMessage /FGMPHelper::SendWorldMessage Listen for messages
FGMPHelper::ListenMessage/FGMPHelper::ListenObjectMessage
Generic supportUnified generic interface, only MSGKEY is needed to map the message
Supported typesSupports types and containers supported by various blueprints
Because of the uniqueness of the UObject class, secure automatic type conversion is particularly supported
**
Current usage limit**
In order to be compatible with the blueprint system, the pointer only supports UObject and its derived classes. All other types usereference[/li][li]For compatibility with blueprints, only containers supported by blueprints are supported, using the default allocator[/li][li]In addition to the UObject class using Pointers, arguments that listen to callbacks must use the reference type to reduce unnecessary copying[/li][li]The parameters of the monitor callback use the reference type, so it supports write-back monitor parameters[/li][li]Enumeration is currently underlay_type processing // to be optimized[/li][li]Blueprint Write-back monitoring parameters requires additional operations // to be optimized[/li][/ol]other scripts support
It is easy to add support for other scripts(such as lua), as well as a consistent usage experience RPC Support
Currently only support used in C++, work in progress for Blueprint