快速提问。所以我一直在努力保存我的项目,我正在做一些调试,因为事情不正常。现在似乎已修复,但我想知道......在将加载的游戏提升为变量后,我查看返回值,在实例的末尾有一个“C”,下划线,然后是一个数字。这个数字总是递增的,所以我想知道我是否保存正确。保存游戏实例是否应该始终相同,或者每次从插槽加载时末尾的数字是否会增加?
另外,另一件事。为什么在我转换到我的保存游戏对象并获得一个变量之后,在我调试它时它总是说(变量不在范围内)当它获得变量时?
快速提问。所以我一直在努力保存我的项目,我正在做一些调试,因为事情不正常。现在似乎已修复,但我想知道......在将加载的游戏提升为变量后,我查看返回值,在实例的末尾有一个“C”,下划线,然后是一个数字。这个数字总是递增的,所以我想知道我是否保存正确。保存游戏实例是否应该始终相同,或者每次从插槽加载时末尾的数字是否会增加?
另外,另一件事。为什么在我转换到我的保存游戏对象并获得一个变量之后,在我调试它时它总是说(变量不在范围内)当它获得变量时?
每当 UE4 创建一个 UObject 时,它都会尝试给它指定的名称。每个 UObject 都必须有一个唯一的名称。如果使用该名称,引擎会添加一个数字并递增,直到该名称是唯一的。
您尚未指定保存/加载游戏的方式。您可以通过创建新游戏实例或使用相同的游戏实例来实现正确的保存机制。
我假设您的“加载游戏”是一个保存游戏对象,并且我假设您正在 PIE 中进行测试。因此,如果您继续这样做,那么游戏世界将一遍又一遍地重建,因此加载的游戏对象的名称正在递增。但是,如果您关闭编辑器,那么一切都会重新启动,除非您专门这样做,否则这个递增的数字(这是对象名称的一部分)也不会保存在您的保存游戏中。我的意思是您可以通过从对象中拖出并调用来获得此名称,GetObjectName
如果您愿意,可以将其保存在保存游戏对象中。
对于第二个问题,在很多情况下,蓝图调试都无法正常运行(例如在函数库中),因此不必担心“不在范围内”的事情,蓝图运行良好,只是您看不到值。在这种情况下,您必须使用PrintString
来查看您想知道的内容。