很多时候我们会通过名称来找目标物体
这时候ue在蓝图内给我们提供了三个方法,来获取物体名称
先着重说一下问题
获取显示命名
Get Display Name
这个API在ue原本描述当中写明了,在编辑器和非编辑器状态下情况不一样
看下图 ,在编辑器状态下,会直接返回树状图的名称,打包后则会返回右侧白色提示框中的ID名称
编辑器:Sphere
打包后:Sphere_2
效果将会和获取对象名(GetObjectName)等同
那为什么会出现两个名称不一样呢
原因有以下几种
1.你直接从官方的默认网格拖拽出来的(本身就是实例化,则自动带上实例化名称)
2.场景内有相同名称的东西(就比如你创建一堆cube,然后一起改名都叫cube)
便于展示我贴一下代码打印的结果
左侧是DisplayName 右侧是ObjectName
---------------------------------------------------------------------------------------------------------------
好问题已经了解了
阐述一下我对这个问题的解决方案
当我确实需要用名称来确定这个物体是不是我想要的
1.因为ue自动添加的这个实例名称均为下划线后面加数字,所以我可以将我的命名规则中不用下划线这个字符,然后再获取名称后直接删掉下划线及后面的实例数字
例如:cube-1-2_554 洗掉 _554 就行了
2.如果是mesh而且这个mesh是唯一的(模型体量大就有这个情况了,遇到自然就明白了),可以获取mesh名称作为识别码