UE4基础知识总结(五)

九、虚幻架构

1.游戏性类

     a.游戏性类的前缀有:1.A     它们是 Actor,可直接生成到世界场景中。

                  2.U  必须从属于Actor,与组件类似的对象。

     b.游戏性类头文件不许出现:#include "ClassName.generated.h"这行代码。

     c.类声明的语法如下:

          UCLASS([specifier, specifier, ...], [meta(key=value, key=value, ...)])

          class ClassName : public ParentName

          {

                   GENERATED_BODY()

          }

     c.在声明类时,声明上可添加修饰符以控制引擎和编辑器的不同方面的类表现:

          1.UCLASS(abstract) :Abstract类修饰符将类声明为“抽象基类”,这样会阻止用户在虚幻编辑器中向这个世界中添加这个类的Actor,或者在游戏过程中创建这个类的实例。

          2.UCLASS(blueprintable) :指定该类为创建蓝图的可接受基类。

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

          4.UCLASS(const):本类中的所有属性及函数均为常量,并应作为常量导出。

          5.UCLASS(Deprecated):该类已被废弃,并且该类的对象在序列化时将不会被保存。

          6.UCLASS(showFunctions=FunctionName):在属性视图中显示指定的函数。

     d.所有的游戏性类必须使用 GENERATED_BODY 宏进行正常实现。

2.函数

     a.函数可以两种基本形式存在:普通C++函数或UFunction。C++函数和UFunction均在.h类头文件中进行声明。

     b.UFunctions的声明语法如下:

               UFUNCTION([specifier, specifier, ...], [meta(key=value, key=value, ...)])

               ReturnType FunctionName([Parameter, Parameter, ...])

     c.在声明函数时,声明上可添加修饰符以控制引擎和编辑器的不同方面的属性表现:

          1.UFUNCTION(BlueprintAuthorityOnly):如无网络权限,则该函数将不会从蓝图代码中执行

          2.UFUNCTION(BlueprintCallable):该函数可在蓝图或关卡蓝图图表内执行。

          3.UFUNCTION(BlueprintImplementableEvent):此函数可以在蓝图或关卡蓝图图表内进行重载。

          4.UFUNCTION(BlueprintPure):此函数不会以任何方式影响其从属对象,并且可在蓝图或关卡蓝图图表中执行。

          5.UFUNCTION(Category="MajorCategory,SubCategory"):当在蓝图编辑工具中显示时,定义函数的分类。

          6.UFUNCTION(Unreliable):此函数在网络间复制,但可能会由于带宽限制或网络错误而传送失败。

3.接口

     a.接口类的声明和常规类的声明非常相似,声明方法如下:

          UINTERFACE([specifier, specifier, ...], [meta(key=value, key=value, ...)])

          class ClassName :ParentName

     b.在声明接口时,声明上可添加修饰符以控制引擎和编辑器的不同方面的接口表现:

          1.UINTERFACE(Blueprintable):指定该类为创建蓝图的可接受基类。

          2.UINTERFACE(DependsOn=(ClassName, Classname, ...)):表示ClassName是在这个类之前进行编译的。ClassName必须在同一个(或者是以前的)软件包中指定一个类。

          3.UINTERFACE(MinimalAPI):使得类的类型信息由其他模块导出以供使用。

          4.UINTERFACE(NotBlueprintable):指定该类不是创建蓝图的可接受基类。

4.属性

     a.属性声明:将此变量对虚幻引擎公开,需要将其转换为一个UPROPERTY

          UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)])

          Type VariableName;

          UPROPERTY(EditAnywhere, BlueprintReadWrite, category = "CS3UserWidget"):可编辑

5.结构体

     a.游戏性类中的结构体可包含变量,包括UProperty变量、函数和运算符。结构体的声明发生在类的声明之前:

          USTRUCT([Specifier, Specifier, ...])

          struct StructName

          {

                   GENERATED_USTRUCT_BODY()

          };

     b.声明结构体时说明符可被添加到声明,以便控制结构体与引擎和编辑器诸多方面的相处方式:

          1.USTRUCT(Atomic):意味着这个struct要一直作为一个单独的单元进行序列化。

          2.USTRUCT(BlueprintType):将此结构体作为用于蓝图中变量的类型。

          3.USTRUCT(NoExport):不会为该类创建自动生成的代码;

你可能感兴趣的:(UE4基础知识总结(五))