2.架构介绍
一、文件说明
根据UE的设定,头文件(.h)放在Public文件夹中,具体的实现(.cpp)在Private文件中。
下图为Public文件夹中的文件结构
__Rules
红框内的Rules结尾的文件夹保存对应资源的规则,具体的功能见示例规则。
EditorResCheckCommandlet
后续用于部署服务器的后台扫描,暂未实现。
Artease
用于和Artease端通讯,获取规则设置(开关,白名单等)。
Utilities
包含各种功能方法,包括了 通知窗口,POPO求助,保存Python检查 等功能。
后续如果有Python无法实现的功能,需要C++做转发,可以在这里实现。
EditorResCheck.h/.cpp
框架的主要部分,详见框架介绍。
二、规则类
IRule为所有规则的依托(Interface),所有的规则具体实现通过重载RuleCheck函数来实现具体的规则。
(详见规则编写)
同理,Python规则也是通过重载RuleCheck来实现的。
三、规则类容器
IObjectRules为规则类的容器,类结构如下。
基本上UE已有的资源类别已经做了归类,并添加了示例函数,详见示例规则。
四、EditorResCheckModule
Module包含了一个TMap,用于分配需要检查的资源。整体的检查逻辑都在这里实现。
例如用户在保存某个蓝图资源时,就会从Module -> FBluerprintRules(IObjectRules) -> 遍历存放在该容器内的IRule,随后执行检查。
规则与Object类的对应关系,在EditorResCheck.cpp里声明。
例:UStaticMesh资源保存时,就会遍历FStaticMeshRules里的规则去对应检查。