I noticed today just simply mapping a TLazyObjectPtr to any kinda object and playing in the level after you mapped it basically resets it back to null even if that object wasn’t created yet in game-play and yes im in the same level i mapped the object to and the same with the object holding the TLazyObjectPtr variable so its not a cross level reference either. You’ll notice this occurs and the action that did need to play does occur for the AI sitting if i wait a few more seconds. But the moment i press esc and close the play session it resets the variable to null. If i reload the engine and dont save any changes the reference comes back to exactly what it was before i attempted to play in the editor.
We use these a lot in patrol systems four our game so level designers can create patrols quite easy with the eyedropper tool. This didn’t occur in 4.17 as Ive reverted my code back to before we updated and installed the last engine and it worked. Was this a recent change or just a new bug introduced in 4.18?
Heres a closeup of the variable changing.
I simply just declared the variable like this, mapped it and once you play in the editor it automatically clears the value…
UPROPERTY(EditAnywhere, Category = Config)
TArray<TLazyObjectPtr <AI_Object_POI_Scripted> > POI;