Skip to content

2.架构介绍

一、文件说明

根据UE的设定,头文件(.h)放在Public文件夹中,具体的实现(.cpp)在Private文件中。

下图为Public文件夹中的文件结构

image-20220512110911312

__Rules

红框内的Rules结尾的文件夹保存对应资源的规则,具体的功能见示例规则

EditorResCheckCommandlet

后续用于部署服务器的后台扫描,暂未实现。

Artease

用于和Artease端通讯,获取规则设置(开关,白名单等)。

Utilities

包含各种功能方法,包括了 通知窗口,POPO求助,保存Python检查 等功能。

后续如果有Python无法实现的功能,需要C++做转发,可以在这里实现。

EditorResCheck.h/.cpp

框架的主要部分,详见框架介绍。

二、规则类

IRule为所有规则的依托(Interface),所有的规则具体实现通过重载RuleCheck函数来实现具体的规则。

(详见规则编写)

image-20220512111219109

同理,Python规则也是通过重载RuleCheck来实现的。

三、规则类容器

IObjectRules为规则类的容器,类结构如下。

image-20220512111630677

基本上UE已有的资源类别已经做了归类,并添加了示例函数,详见示例规则

四、EditorResCheckModule

Module包含了一个TMap,用于分配需要检查的资源。整体的检查逻辑都在这里实现。

例如用户在保存某个蓝图资源时,就会从Module -> FBluerprintRules(IObjectRules) -> 遍历存放在该容器内的IRule,随后执行检查。

规则与Object类的对应关系,在EditorResCheck.cpp里声明。

例:UStaticMesh资源保存时,就会遍历FStaticMeshRules里的规则去对应检查。

image-20220512111714433