Is there a way I can exclude certain Blueprint nodes on certain Platforms from even compiling? In C++ there are preprocessor macros:
#if PLATFORM_WINDOWS
MyAwesomeWindowsStuff();
#else
MyAwesomeNotWindowsStuff();
#endif
This works great. However, when you have a function in Blueprint which depends on MyAwesomeWindowsStuff();
, the Blueprint obviously cannot compile, as the C++ function is not compiled. Is there a way, so a Blueprint node is only compiled when we are on a certain Platform?
Since there isn’t much leeway within blueprints to do this, the best I can come up with at this point is to create a Platform agnostic C++ BP Function library layer.
Each time you come across a function that needs to be platform specific, add the call to your c++ library.
Within each c++ function, do the above #if, call your specific api, and add an appropriate default behavior.
The similar issue I’m hitting is based on included plugins: Not including a plugin results in certain nodes not being available to blueprints. (ie, targetting Google VR vs Morpheus, disabling modules not needed for the target results in error nodes for the platform specific BP apis)
1 Like