#Hi ๐
1 messages ยท Page 1 of 1 (latest)
That builds just fine in editor
but when building for packaged shipping, I see:
UATHelper: Packaging (Windows): LogInit: Display: LogOutputDevice: Error: Ensure condition failed: PointerToUberGraphFrame->RawPointer [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\BlueprintGeneratedClass.cpp] [Line: 1832]
UATHelper: Packaging (Windows): LogInit: Display: LogOutputDevice: Error: Stack:
UATHelper: Packaging (Windows): LogInit: Display: LogOutputDevice: Error: [Callstack] 0x00007ffd9c479457 UnrealEditor-Engine.dll!UBlueprintGeneratedClass::GetPersistentUberGraphFrame()
...
[D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\ScriptCore.cpp:2144]
UATHelper: Packaging (Windows): LogInit: Display: LogOutputDevice: Error: [Callstack] 0x00007ffd740a6bcc UnrealEditor-FindingStella.dll!UEdTickConstructScriptComponent::PostInitProperties() [C:\Users\olliv\Desktop\Art And Development\PathmakerFindingStella\Synced\FindingStella\Source\FindingStella\Private\EdTickConstructScriptComponent.cpp:81]
I noticed that searching for BlueprintImplementableEvent in the engine source code, its not very commonly used
Is it intended to be used for shipping builds at all (and is it possible that it is whats causing the build error since Im using it for my functions ConstructionScript, OnMoveEditor, OnMoveRuntime, TickEditor & TickRuntime)?
the cpp code part is kinda a mess, maybe you could cut all commented out code that is not used as it brings more confusion and errors
or at least add cpp part to color it
why you doing that in postinitproperties and not initcomponent or beginplay?
no particular reason ๐
then move it to latter stage
postinitproperties is too early to invoke events as well, graph is not yet being initialized (thats what assert you get)
I see
I will change PostInitProperties to InitProperties then and see if it makes a difference
oh wait
InitComponent
okay sure
@upper niche I cant quite seem to find a function called "InitComponent"
The code Im looking to execute should run when the component moves in the editor or gets created (either in the editor or at runtime)
hm, then maybe onregister. but still you won't be allowed to invoke blueprint events there
oh
Maybe I should instead explain what my endgoal is...
So I have a material with a couple of parameters that I want to set every time an actor with that material is moved in the editor or at runtime. To achieve this, I created a component that would call a BP function when the actor is moved/created in editor implemented via InitProperties - that calls a function UFUNCTION(BlueprintImplementableEvent) void ConstructionScript(); (which I would override in the Blueprint)
Then, in InitProperties, I was also registering a lambda:
this->TransformUpdated.AddLambda(
[this](USceneComponent* Component, EUpdateTransformFlags /*UpdateTransformFlags*/, ETeleportType /*Teleport*/)
{
if (this->GetWorld()->IsGameWorld())
{
this->OnMoveRuntime();
}
else
{
this->OnMoveEditor();
}
});
That calls 2 other functions
UFUNCTION(BlueprintImplementableEvent)
void OnMoveEditor();
UFUNCTION(BlueprintImplementableEvent)
void OnMoveRuntime();
as adequate