ue4游戏模式重载在哪,ue4在游戏制作中的用途

首页 > 实用技巧 > 作者:YD1662024-01-17 12:54:56

九、虚幻架构

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):不会为该类创建自动生成的代码;

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.