How to access UPaperSprite size in Non-Editor builds?

I’d like to ask if there’s a way of accessing the UPaperSprite’s size in non-editor builds. After getting errorrs when trying to make a non-editor build of my game, I found that the GetSourceSize() method is protected by the WITH_EDITOR macro.

Also, the data it is accessing is not protected by the WITH_EDITORONLY_DATA macro, so maybe it is not supposed to be editor-only function at all and this is just a typo? Or am I missing something and there indeed is a reason for it to be editor only? Just for the sake of it, I tried moving the function into non-WITH_EDITOR section of the header file and building the project. The project has built just fine, but after trying to run the game, I got Fatal Error! message, however I am not sure whether this is related to the GetSourceSize() function or not.

Thank you for your response!

Verified that the crash is unrelated to the GetSourceSize() function. Found other errors, fixed them and now the build runs just fine.

I’m not sure whether it’s too late.

Maybe you can try Sprite->GetBakedTexture()->GetSizeX() for width and GetSizeY() for height.

For 4.22 and lower:

  • open “[EngineFolder]\Engine\Plugins\2D\Paper2D\Source\Paper2D\Classes\PaperSprite.h”;
  • move function “GetSourceSize()” from section “#if WITH_EDITOR”;
  • save file;
  • call function “GetSourceSize()” from you code;
  • package game.

For 4.22 (for 4.23 doesn’t cheked):

  • open “[EngineFolder]\Engine\Plugins\2D\Paper2D\Source\Paper2D\Classes\PaperSprite.h”;
  • insert line “FVector2D GetBakedSourceSize() const { return BakedSourceDimension; }” in public-section, but not “#if WITH_EDITOR” section;
  • save file;
  • call function “GetBakedSourceSize()” from you code;
  • package game.