Bootstrap

ue4 通过指定路径加载资源_UE4类型与资源路径重定向

UE4重定向机制十分强大,可在不同范围对类型和资源路径进行重定向。

在4.24.3版本中,有两套实现方案:ActiveXXXRedirects和XXXRedirects

ActiveXXXRedirects是老的实现方案,功能较弱,未来会被淘汰

XXXRedirects又叫CoreRedirects,是新一代的重定向方案,功能更强大,可满足各种情况下的类型及资源路径的重定向

ActiveXXXRedirects老方案

具体包括4种类型:ActiveGameNameRedirects、ActiveClassRedirects、ActivePluginRedirects、ActiveStructRedirects

定义在:UnrealEngine\Engine\Source\Runtime\Engine\Classes\Engine\Engine.h

USTRUCT()structFGameNameRedirect

{

GENERATED_USTRUCT_BODY()

UPROPERTY()

FName OldGameName;

UPROPERTY()

FName NewGameName;

};

USTRUCT()structFClassRedirect

{

GENERATED_USTRUCT_BODY()

UPROPERTY()

FName ObjectName;

UPROPERTY()

FName OldClassName;

UPROPERTY()

FName NewClassName;

UPROPERTY()

FName OldSubobjName;

UPROPERTY()

FName NewSubobjName;

UPROPERTY()

FName NewClassClass;

UPROPERTY()

FName NewClassPackage;

UPROPERTY()boolInstanceOnly;

};

USTRUCT()structFStructRedirect

{

GENERATED_USTRUCT_BODY()

UPROPERTY()

FName OldStructName;

UPROPERTY()

FName NewStructName;

};

USTRUCT()structFPluginRedirect

{

GENERATED_USTRUCT_BODY()

UPROPERTY()

FString OldPluginName;

UPROPERTY()

FString NewPluginName;

};

UCLASS(abstract, config=Engine, defaultconfig, transient)classENGINE_API UEngine

:publicUObject

,publicFExec

{//... ...

public:

UPROPERTY(config)

TArrayActiveGameNameRedirects;

UPROPERTY(config)

TArrayActiveClassRedirects;

UPROPERTY(config)

TArrayActivePluginRedirects;

UPROPERTY(config)

TArrayActiveStructRedirects;//... ...

};

XXXRedirects新方案

具体包括6种类型:ClassRedirects、StructRedirects、EnumRedirects、FunctionRedirects、PropertyRedirects、PackageRedirects

定义在:CoreRedirects.h和CoreRedirects.cpp

enumECoreRedirectFlags

{

None= 0,

Type_Object= 0x00000001,

Type_Class= 0x00000002, //ClassRedirects

Type_Struct = 0x00000004, //StructRedirects

Type_Enum = 0x00000008, //EnumRedirects

Type_Function = 0x0000