【问题标题】:What does the 'C_#' after an instance mean?实例后的“C_#”是什么意思?
【发布时间】:2016-09-02 17:11:42
【问题描述】:

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

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

【问题讨论】:

    标签: scope instance unreal-engine4 unreal-savegame


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的进一步解释 :) 我认为您是 100.0% 正确
    【解决方案2】:

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

    您尚未指定保存/加载游戏的方式。您可以通过创建新游戏实例或使用相同的游戏实例来实现正确的保存机制。

    【讨论】:

    • 哦。好吧,我认为这并不重要,我只是好奇。或者也许它确实很重要......但感谢您的解释:] checkmark
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多