实例后面的 'C_#' 是什么意思?

What does the 'C_#' after an instance mean?

快速提问。所以我一直在努力保存我的项目,并且我正在做一些调试,因为事情不正常。它现在似乎已修复,但我想知道......在我将加载的游戏提升为变量后,我查看 return 值,在实例的末尾有一个 'C',下划线,然后是一个数字。这个数字总是递增的,所以我想知道我是否保存正确。保存游戏实例应该始终相同,还是每次从插槽加载时末尾的数字都会增加?

另外,还有一件事。为什么在我投射到我的保存游戏对象并获得一个变量之后,当我调试它时它总是说(变量不在范围内)当它获得变量时?

每当 UE4 创建一个 UObject 时,它都会尝试为其指定指定的名称。每个 UObject 都必须有一个唯一的名称。如果名称被占用,引擎会添加一个数字并递增,直到该名称是唯一的。

您还没有指定 save/load 游戏的方式。您可以通过创建新游戏实例或使用相同实例来实现正确的保存机制。

我假设您的 "loaded game" 是一个保存游戏对象,并且我假设您正在 PIE 中进行测试。所以如果你继续这样做,那么游戏世界就会一遍又一遍地重建,这样加载的游戏对象的名称就会递增。但是如果你关闭编辑器然后一切都会重新启动,这个递增的数字(它是对象名称的一部分)也不会保存在你的游戏存档中除非你专门这样做。我的意思是你可以通过从对象中拖出并调用 GetObjectName 来获得这个名称,如果你愿意,可以将它保存在游戏对象中。

对于第二个问题,在很多情况下蓝图调试功能不佳(比如在函数库中),所以不用担心 "not in scope" 的事情,蓝图 运行 很好,只是你看不到价值。在这种情况下,您必须使用 PrintString 来查看您想知道的内容。