Are Soft References in Blueprints equivalent to Pointers in C++ ?

Thank you @ClockworkOcean. I watched the video and it seems to indirectly answer the question.

Looks like in general it is not recommended to use C++ to reference assets like visual effects or meshes etc… -And this was basically my consideration to use pointers in C++ to get rid off the hard references to assets in Blueprints to save memory.
So for me the answer is that Soft References are the way to go, without any C++.
They reference the assets in an elegant, light weight and robust way, that doesn’t seem to be possible in ( pure ) C++. And the little benefits of additional C++ code seem irrelevant to me in an average game or multimedia project.

Well @Probezeit there are two kinds of Soft References:
Soft Class References just store a “link” to an asset ( and its type ) that is NOT automatically deleted after some time.
You need to load a Hard Class Reference to the asset first to use it. The loading is the huge difference to normal Hard Class References.

On the other hand you can store links to Hard Object References ( that were spawned ) in Soft Object References, like you can do it in Hard Object References, like most people do it.
And now: Yes… this Soft Object Reference will also be “null” / empty if the asset it is linking ( or “pointing” ) to is deleted by the garbade collector. This happens if there is no more Hard Object Reference to the asset.

-Really sad that the Blueprint Nativization was removed in Unreal 5…
But I am really excited to see how the Verse language will handle and hopefully further ( or again ) improve things…

2 Likes