简介
随着项目的发展,可能会发现需要重构一些逻辑。对于C++相对还是比较容易的,目前主流的IDE都提供了一定的重构能力,可以比较方便地进行重命名、查找引用等操作。
然后对于蓝图来说,可能就不太好直接一键操作了,直接改变老的逻辑有可能产生很多问题。尤其是对于已经有了大量引用地逻辑,如果直接改动可能产生预期之外的工作量。这个时候一个选择是做一个新版的实现,然后逐步废弃老的实现。为了优雅地实现这一目的,虚幻引擎提供了一些用于标记废弃的语法。
如果项目中应用了额外的脚本语言,需要参考对应实现来选择一个重构方式。
推荐使用Puerts作为一个类型安全的脚本语言,也许可以参考这篇文章:虚幻引擎适用于Unlua转到PuerTS的一些知识
重定向
如果是需要重命名,可以优先考虑使用UE的重定向系统:虚幻引擎中重定向的相关知识。
废弃标记
UPROPERTY
对于一个属性来说,只需要将变量重命名为_DEPRECATED版本,并且附加上废弃标识即可。
这不会影响到原有蓝图的编译,可以在此期间删除引用。
| |
| |
UFUNCTION
对于UFUNCTION比较简单,给函数添加上meta属性DeprecatedFunction即可。
| |
| |
UCLASS
对于UCLASS来说,也需要进行重命名。
| |
| |
UENUM & USTRUCT
似乎并不支持上述DEPRECATED_的语法来影响蓝图编译,不过对于C++似乎引擎存在标记UE_DEPRECATED的语法。
更推荐改个已废弃的名,然后使用重定向系统来处理:虚幻引擎中重定向的相关知识。
UE_DEPRECATED
可能是最为常见的一个废弃标记,通常用于标记函数或者变量在某个引擎版本后已被废弃了。
语法为UE_DEPRECATED(引擎版本号, 提示消息),当在被废弃的版本之后的C++中,使用被废弃的变量或函数时,编译器和IDE会给出提示。
自定义废弃宏
由于虚幻引擎的UE_DEPRECATED是否废弃与引擎版本有关,在平常的项目里可能不太方便,因此可以自己封装一个废弃宏。
| |