官方文档链接:

https://docs.unrealengine.com/latest/CHN/Programming/UnrealArchitecture/Reference/index.html

类声明

类声明定义类的名称、其继承的类,以及其继承的函数和变量。类声明还将定义通过 类说明符 和元数据要求的其他引擎和编辑器特定行为。

类声明的语法如下所示:

UCLASS([specifier, specifier, ...], [meta(key=value, key=value, ...)])
class ClassName : public ParentName
{
GENERATED_BODY()
}

声明包含一个类的标准 C++ 类声明。在标准声明之上,描述符(如类说明符和元数据)将被传递到 UCLASS 宏。它们用于创建被声明类的UClass,它可被看作引擎对类的专有表达。此外,GENERATED_BODY() 宏必须被放置在类体的最前方。

类修饰符
Abstract 
Abstract 类修饰符将类声明为“抽象基类”,这样会阻止用户在虚幻编辑器中向这个世界中添加这个类的Actor,或者在游戏过程中创建这个类的实例。
AdvancedClassDisplay
AdvancedClassDisplay 类修饰符强制类的所有属性仅在 Details(详细信息) 面板中的 高级部分 中显示,并在默认情况下从视图中隐藏。
AutoCollapseCategories
AutoCollapseCategories 类修饰符取消在父类上使用 AutoExpandCategories 修饰符的列出的分类的效果。

AutoExpandCategories

为这个类的对象指定应该在虚幻编辑器属性窗口中自动展开的一个或多个类别。要自动展开没有声明类别的变量,请使用声明这个变量的类的名称。

Blueprintable

指定该类为创建蓝图的可接受基类。除非被继承,否则默认值为NotBlueprintable。它由子类继承。

BlueprintType

此类可作为蓝图中的一种变量类型使用

ClassGroup

表示虚幻编辑器的 Actor 浏览器 在 Actor 浏览器 中启用 Group View(组视图) 的时候应该在指定的 GroupName(组名称) 中包括这个类及其所有子类。

ClassGroup=GroupName

CollapseCategories

表示这个类的属性不应该归类在虚幻编辑器属性窗口的类别中。这个关键字被传递给子类,但子类可以使用DontCollapseCategories关键字覆盖这个标志。
Config
表示允许这个类在配置文件(.ini)中存储数据。Config=FileName

Const

本类中的所有属性及函数均为常量,并应作为常量导出。该标识由子类继承。

ConversionRoot

根转换限制子类转换,使其仅能转换为其上等级的首个根类的子类

CustomConstructor


防止构造函数声明的自动生成。

DefaultToInstanced

该类中所有实例都被视为"已进行实例化"。已进行实例化的类(组件)在构建时被复制。该标识由子类继承。

DependsOn

表示 ClassName 是在这个类之前进行编译的。DependsOn=(ClassName, Classname, ...)
Deprecated
该类已被废弃,并且该类的对象在序列化时将不会被保存。该标识由子类继承。

DontAutoCollapseCategories

取消从父类继承的特定目录的AutoCollapseCategories关键字。

DontAutoCollapseCategories=(Category, Category, ...)

DontCollapseCategories

取消从基类继承的CollapseCatogories关键字。

EditInlineNew

表示这个类的对象可以通过虚幻编辑器属性窗口进行创建(默认的操作是只引用可以通过属性窗口进行分配的现有对象)。这个标志将被传递给所有子类,子类可以使用 NotEditInlineNew 关键字覆盖这个标志。

HideCategories

为这个类的对象指定应该隐藏在虚幻编辑器属性窗口中的一个或多个类别。要隐藏没有声明类别的变量,请使用声明这个变量的类的名称。这个关键字被传递给子类。

HideCategories=(Category, Category, ...)

HideDropdown

禁止这个类显示在虚幻编辑器属性窗口组合框中。

HideFunctions

将指定函数隐藏在属性视图中。使用方法:hideFunctions=FunctionName或hideFunctions=(category0, category1, ...)

Intrinsic

类直接在C++中进行声明,并且不具有由UnrealHeaderTool生成的样板文件。

MinimalAPI

使得类的类型信息由其他模块导出以供使用。这个类可以被投射,但类的函数无法被调用(除了内联方式)。这样可以改善对不需要其所有功能在其它模块进行调用的类的编译时间。

NoExport

表示这个类的声明不应该包含在头文件编译器自动生成的 C++ 头文件中。该 C++ 类声明必须在单独的头文件中手动进行定义。只对 native 类有效。

NonTransient

N取消从基类继承的Transient关键字。

NotBlueprintable

指定该类 不是 创建蓝图的可接受基类。除非被继承,否则默认值为NotBlueprintable。它由子类继承。

NotPlaceable

否定从基类继承的Placeable关键字。表示在虚幻编辑器中不可以将这个类放置到关卡等位置。

PerObjectConfig

这个类的配置信息将会根据对象进行存储,其中每个对象在.ini文件中都有一项,它以这个对象的名字命名,格式为[ObjectName ClassName]。此关键字被传递到子类。

Placeable


表明该类可在虚幻编辑器内进行创建并被放置在关卡,UI场景,或蓝图内(取决于该类类型)。此标识被传递到所有的子类中,子类可使用NotPlaceable 关键字来重载该标识。

ShowCategories


否定从基类继承的特定分类的 HideCategories 关键字。

ShowCategories=(Category, Category, ...)

ShowFunctions

在属性视图中显示指定的函数,使用方法:showFunctions=FunctionName或者showFunctions=(category0, category1, ...)

Transient

也就是“属于这个类的对象永远不应该保存在磁盘上”。仅在与本身为非持续的native类的特定种类结合使用时有用。这个关键字被传递给子类,子类可以使用NonTransient关键字覆盖这个标志。

Within

Within 类修饰符表明此类的对象不能存在于 ClassName 的实例 之外 。 为了创建这个类的对象,您必须将 ClassName 的实例指定为 Outer对象。

UE4类修饰符的更多相关文章

  1. java中的类修饰符、成员变量修饰符、方法修饰符。

    类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...

  2. java中的类修饰符、成员变量修饰符、方法修饰符

    类修饰符:  public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fi ...

  3. partial类修饰符

    partial是一个类修饰符,用于把类定义拆分为几个部分,便于代码管理,如class ClassA{void A(){;}void B(){;}}与partial class ClassA{void ...

  4. 类修饰符为abstract与final

    类修饰符为abstract:这个类可以被继承,因此可以通过子类来产生实例. 类修饰符为final:这个类不能被继承. 类修饰符不能同时为abstract.final:编译器会提示: 非法的修饰符组合: ...

  5. 构造方法为private与类修饰符为final

    构造方法为private的:在这个类外1:不能继承这个类2:不能用new来产生这个类的实例 在这个类内:1:可以继承这个类2:可以用new来产生这个类的实例 类修饰符为final的:在这个类外1:不能 ...

  6. Java中的类修饰符

    资料主要来源于网络(http://60.28.60.3/zy/java-new/zhishidian/chap3/3.htm) 之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这 ...

  7. Java类修饰符的使用与作用以及常见问题

    首先明确,类是放在文件里的,在文件里面的不同位置就有不同的作用,就是不同类型的类. 1, 顶级类or外部类:包括两种,一个文件中与文件名同名称的类我们称作顶级类(也是外部类),如果在一个文件中的一个类 ...

  8. @property的4类修饰符

    一.读写性修饰符:readwrite | readonly readwrite:表明这个属性是可读可写的,系统为我们创建这个属性的setter和getter方法. readonly:表明这个属性只能读 ...

  9. 学习C#修饰符:类修饰符和成员修饰符

    C#修饰符之类修饰符:public.internal. partial.abstract.sealed.static C#修饰符之成员修饰符:public.protected.private.inte ...

随机推荐

  1. jmeter正则表达式书写

    在测试过程中,经常会有以下几种场景,如A接口的返回值,用于B接口中,而且A登陆的账户,每次登陆,这个sid值还是变化的.那么在实际工作中,如何才能A接口中提取参数到B接口中?接下来我们就可以用正则表达 ...

  2. Vue生命周期-手动挂载理解

    改前端遇到个bug,console能够输出值,但是前端不能显示. 我简直一脸懵逼,vue的问题?网络的问题?浏览器的缓存问题? 公司网络,所以直接排除网络问题. 浏览器缓存,试了下确实一定概率可以显示 ...

  3. Oracle的dual

    1.dual 确实是一张表.是一张只有一个字段,一行记录的表. 2.习惯上,我们称之为'伪表'.因为他不存储主题数据.3.他的存在,是为了操作上的方便.因为select 都是要有特定对象的.但如果我们 ...

  4. 2. struct A 和 typedef struct A

    2. struct A 和 typedef struct A 2.1 struct A struct A{}定义一个名为struct A的结构体. 下例定义了struct A同时,声明了两个变量(注意 ...

  5. Structured Streaming + Kafka 集成中遇到的问题

    官方指导:http://spark.apache.org/docs/2.2.0/structured-streaming-kafka-integration.html 1.版本问题  起初用的kafk ...

  6. spring cloud 入门系列四:使用Hystrix 实现断路器进行服务容错保护

    在微服务中,我们将系统拆分为很多个服务单元,各单元之间通过服务注册和订阅消费的方式进行相互依赖.但是如果有一些服务出现问题了会怎么样? 比如说有三个服务(ABC),A调用B,B调用C.由于网络延迟或C ...

  7. Docker实例:创建一个点到点连接

    默认情况下,Docker 会将所有容器连接到由 docker0 提供的虚拟子网中. 用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接. 解决办法很简单:创建一对 peer 接口,分别 ...

  8. 使用WeihanLi.Redis操作Redis

    WeihanLi.Redis Intro StackExchange.Redis 扩展,更简单的泛型操作,并提供一些的适用于业务场景中的扩展 基于 Redis 的五种数据类型扩展出了一些应用: Str ...

  9. sublimetext 自定义build

    Nodejs { "cmd": "node $file", "shell": "true", "selecto ...

  10. git 同步勾子

    #!/bin/bash git --git-dir=/var/www/domain/.git --work-tree=/var/www/domain pull uwsgi --reload /tmp/ ...