Language:
Page Info
Engine Version:
Share

重定向器

在UE4中,移动或重命名一个资源会在此资源的旧位置中留下一个 重定向器。这样,当前未加载但引用此资源的包将知道在新的位置中的什么位置找到它。在初期选择一个命名系统并坚持使用此系统将避免在重定向器方面遇到的许多问题。

从编辑器修复重定向器

要在编辑器中查看重定向器,请在内容浏览器中启用显示重定向器(Show Redirectors)过滤器。然后,右键单击一个重定向器并选择修复(Fixup)。这将重新保存指向此重定向器的所有包,如果能够重新保存引用此重定向器的所有内容,还将删除此重定向器。

ResavePackages命令行

ResavePackages命令行可以使用-FixupRedirectors选项运行,以尝试修复项目中的所有重定向器。下面是一个命令行示例:

UE4Editor.exe <GameName or uproject> -run=ResavePackages -fixupredirects -autocheckout -projectonly -unattended

此版本的命令行由用户在本地机上运行。它将签出所有需要修复的文件,用户需要提交它们。-autocheckin可以由自动进程使用,它也会为您签入文件。

陷阱

重命名

如果您创建了一个对象,重命名了此对象,然后创建了一个与原始对象同名的新对象,则会发生错误。这是因为在重命名第一个对象时创建了一个重定向器,而重定向器和资源不能拥有相同的名称。

无关联的重定向器

关于重定向器,有几个已知的问题,这些问题可以再现如下:

情境1

  • 将对象A重命名为对象B。

  • 删除B。

  • 错误消息将表示不能删除B,因为它正在使用中。这是因为在重命名期间创建的重定向器仍然指向B。

情境2

  • 将对象A重命名为对象B。

  • 将对象B重命名回对象A。

  • 删除A。

  • 为第一次重命名创建的重定向器将被销毁,但在B处将创建一个新的重定向器。因此,将无法删除A,因为它正在被引用。

删除前,从编辑器或SavePackages修复重定向器应该可以解决这些问题。