-
GetName()
value, when auto generated, can change run over run. In my tests development and shipping builds actually had differently generated names. If you do change name in editor than that stays the same run over run. -
GetFName()
returns same value but as FName. -
GetFullGroupName()
returns level by default. -
GetFullName(true)
returns full unique name. For example, for pawns it would returnMyCppPawn /Game/FirstPersonCPP/Maps/UEDPIE_0_FirstPersonExampleMap.FirstPersonExampleMap:PersistentLevel.MyCppPawn10
and for StaticMeshComponent it would returnStaticMeshComponent /Script/Engine.Default__DefaultPawn:MeshComponent0
. -
Actors have
HumanReadableName()
method which currently just returnsGetName()
. -
Actors have
GetDebugName(actor)
method which currently just returnsActor.GetName()
if actor != nullptr. -
Actors have
ActorLabel
property andGetActorLabel()
but both of which is editor only which means your code will fail to compile if you tried to package a shipping build with that call. These are useful in editor tools however since this is the editor-user-facing name of the Actor. -
There is
UKismetSystemLibrary::GetDisplayName()
which returns label in editor mode otherwiseowner.GetName() + component.GetName()
.
As the autogenerated names are not stable, current recommendation is to either explicitly name things in editor OR use tags on actor which can be checked using ActorHasTag(name)
method.