34 lines
828 B
Markdown
Raw Normal View History

2024-10-12 17:19:46 +08:00
# Interface
- **功能描述:** 标识这个Class是个Interface。
- **引擎模块:** UHT
- **元数据类型:** bool
- **作用机制:** 在ClassFlags中添加[CLASS_Interface](../../../Flags/EClassFlags/CLASS_Interface.md)
- **常用程度:** 0
标识这个Class是个Interface。
只用在NoExportTypes.h中我们自己的UInterface不需要手动设置。
是UHT在为UInterface生成的时候设置在.generated.h里的。
## 源码例子:
```cpp
UCLASS(abstract, noexport, intrinsic, interface, Config = Engine)
class UInterface : public UObject
{}
```
## 原理:
```cpp
bool FKismetEditorUtilities::IsClassABlueprintInterface(const UClass* Class)
{
if (Class->HasAnyClassFlags(CLASS_Interface) && !Class->HasAnyClassFlags(CLASS_NewerVersionExists))
{
return true;
}
return false;
}
```