SteamVR Chaperone Component not exported correctly

Hi!

A very quick one:

I happened to notice that in the SteamVR plugin the Chaperone Component does not get correctly exported to C++ so that it is impossible to execute the GetBounds method in C++.

A quick for me was to remove the MinimalAPI specifier and add the STEAMVR_API export tag:

UCLASS( meta = (BlueprintSpawnableComponent), ClassGroup = SteamVR)
class STEAMVR_API USteamVRChaperoneComponent : public UActorComponent
{

Cheers

Hey JannesNagel-

The MinimalAPI specifier is used to only export the class’s type information for use by other modules; which allows the class to be cast to but restricts calling class methods to only inline methods. This is done to improve compile times of exporting for classes that don’t need all of their functions accessible in other modules.

If you do need to access the full functionality of the class, you can remove the MinimalAPI specifier as you suggested, however keep in mind that doing so is likely to extend the compile process.

Cheers

Hi!

If that is intended it is not a bug.
Fair enough - but why is that not exposed in C++? I do not really see a justification to do that.
Should I file a Feature Request for that? Or do you not see a reason to do it?

Cheers

Hey JannesNagel-

Sorry for the delayed response. The reason this is not exposed by default is to help the community as a whole. As mentioned, having this exposed by default would increase compile times for everyone. By manually including them it allows the editor to run as quickly as possible in most instances, and those that need to use the feature can make this change to access it.