当前位置: 首页 > news >正文

江苏营销型网站推广高端营销型网站

江苏营销型网站推广,高端营销型网站,世界500强企业分布,免费制作企业宣传片app一、前言 结构体的定义和枚举类似,枚举的定义有两种方式。区别是结构体必须以“F”开头命名,而枚举不用。 额外再讲了一下蓝图生成时暴露变量的方法。 二、实现 2.1、结构体 1、定义结构体 代码如下,注意这个定义的代码一定要在“UCLASS()”…

一、前言

        结构体的定义和枚举类似,枚举的定义有两种方式。区别是结构体必须以“F”开头命名,而枚举不用。

        额外再讲了一下蓝图生成时暴露变量的方法。

二、实现

2.1、结构体

 1、定义结构体

 代码如下,注意这个定义的代码一定要在“UCLASS()”的前面,否则会编译报错。另外结构体的命名也必须以“F”开头,否在也会编译报错。通过如下定义的结构体,在蓝图中可以创建一个新的变量,如图2.1.1所示,然后可以选中刚创建的类型变量。


USTRUCT(BlueprintType)
struct FMyStruct//必须以F开头
{GENERATED_USTRUCT_BODY()UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")int32 Health;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")FString MyName;
};UCLASS()
图2.1.1
2、再定义结构体变量

        通过如下代码定义一个上述结构体类型的变量,在蓝图中可以编辑和使用该类型的变量,如图2.1.2所示,为面板中的变量。图2.1.3为蓝图中调用该定义的变量。

	//结构体UPROPERTY(EditAnywhere,BlueprintReadWrite,Category="MyStruct")FMyStruct MyStructValue;
图2.1.2
图2.1.3

3、结构体和数据表格进行绑定

在代码中创建一个新的结构体,该结构体继承数据表类,创建完后需要将所需的头文件添加到Including中,鼠标悬浮在”FTableRowBase"中通常会出现自动添加的提示按钮,编译。

USTRUCT(BlueprintType)
struct FDataStruct :public FTableRowBase
{GENERATED_USTRUCT_BODY()UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyDataStruct")int32 Age;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyDataStruct")FString MyName;
};

然后在编辑器中创建数据表格,并选中刚刚创建的类型,如图2.1.4所示,打开数据表格即可看到

图2.1.4

结构体的具体变量,在添加一个新的行数据后可以对变量进行赋值,如图2.1.5所示

图2.1.5

还有一种创建CSV格式的文件,在文件中定义相同变量名的列数据,如图2.1.6所示为CSV格式的

图2.1.6

表格数据,将其直接拖动到虚幻引擎中的内容处,会自动弹出数据表格的创建窗口,如图2.1.7所示,在行类型中选中刚刚创建的结构体,然后点击应用,这个就会将刚刚CSV表中的数据填充到此时创建的数据表中,如图2.1.8所示。

图2.1.7
图2.1.8

2.2、定义一个枚举

1、第一种方式

首先定义一个宏,代码如下,生成枚举的反射数据,通过反射将枚举暴露给蓝图,实现C++和蓝图的通信,BlueprintType的作用是可以在蓝图创建变量的时候也可以作为选项。其中UMETA是操作变量的属性更改,代码中修改最终展示的名字。

enum class MyCustomEnum1 :uint8
{OneType UMETA(DisplayName = "One"),TwoType UMETA(DisplayName = "Two"),ThreeType UMETA(DisplayName = "Three"),
};

通过以下代码可以实现在各类面板和蓝图中使用该变量

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyEnum")MyCustomEnum1 MyEnum1;

2、第二种方式

 第二种定义枚举的方式代码如下,这种定义的MyEnumType里只能定义一个,超出会编译报错。

UENUM(BlueprintType)//生成枚举的反射数据,通过反射将枚举暴露给蓝图,实现C++和蓝图的通信,BlueprintType的作用是可以在蓝图创建变量的时候也可以作为选项
namespace MyEnumType
{enum MyCustomEnum{Type1,Type2,Type3,};
}

3、在蓝图中的呈现

如图2.2.1所示为第二种方式创建的变量在创建蓝图新变量时可以选中该枚举作为变量类型。

图2.2.1

同时,在蓝图中也可以调用该枚举,如图2.2.2所示:

图2.2.2
通过以下代码可以实现在各类面板和蓝图中使用该变量
	//枚举UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyEnum")TEnumAsByte<MyEnumType::MyCustomEnum> MyCustomEnum;

同时也可以在蓝图中调用和编辑该变量,如图2.2.3所示

图2.2.3

2.3、蓝图生成时暴露

定义一个变量如下所示,在ExposeOnSpawn后面可以赋值也可以如下所示,不会影响后续的操作

	/// <summary>/// 生成蓝图时暴露的变量/// </summary>UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyExposeOnSpawn", meta = (ExposeOnSpawn))float myExposeOnSpawnValue;

然后在蓝图中可以在生成该类型的类的时候讲上述定义的变量暴露出来,如图2.3.1所示

图2.3.1

这个和蓝图中定义的普通变量勾选”生产时公开“是一样的逻辑和道理。

三、总结

3.1、所有的定义都应该放在“UCLASS()”后面,否则会编译报错“Found 'USTRUCT' when expecting class while parsing class”。

3.2、结构体的命名必须以“F”开头,否则会编译报错“Struct 'MyStruct' has an invalid Unreal prefix, expecting 'FMyStruct”,枚举的命名不用任何固定开头。

3.3、两种枚举定义的方式不同,在C++代码中声明定义后的变量方式也不同。

3.4、结构体和数据表的关系。

http://www.hkea.cn/news/770611/

相关文章:

  • 表白网站制作在线日照网站优化公司
  • 企业网站建设策划书 前言徐州关键词优化排名
  • 一级a做爰片视频网站全国新闻媒体发稿平台
  • 唐山网站建设哪家专业高德北斗导航
  • wordpress 地址 .html企业网站seo贵不贵
  • 提供网站制作公司哪家好网络软文范文
  • 做原型网站枣庄网络推广seo
  • 品牌网站开发设计外贸网站平台
  • 网站做留言板网站推广在线
  • 长春服务好的网络营销seo网站推广的主要目的
  • 搜索引擎优化和关键词竞价广告的区别宿州百度seo排名软件
  • 一搜同志网站建设电话青岛网站seo优化
  • 官方做任务网站网络营销公司注册找哪家
  • django做视频网站网络营销推广专家
  • 国外手做网站搜索引擎推广的关键词
  • 网站建设商标注册多少类目域名注册免费
  • 哪里有网站设计公司长沙网络公司最新消息
  • 试描述一下网站建设的基本流程百度怎么发布短视频
  • 我现在有域名怎么做网站搜索关键词热度
  • 海外如何 淘宝网站建设快速seo整站优化排行
  • 代还信用卡网站建设赣州seo顾问
  • 响应式网站建设推广开网店
  • 成都专业网站推广公司优化大师优化项目有
  • 怎么用wordpress搭建网站百度关键词排名点
  • 外挂网站模板域名搜索引擎入口
  • 手机网站开发 pdfseo搜索引擎优化工作内容
  • 上海中小网站建设洛阳seo博客
  • 南宁网站建设公司哪家专业搜索引擎优化包括
  • 新疆住房与建设厅网站新产品推广方式有哪些
  • 做网站站怎么赚钱网络营销模式有哪些?