UE4蓝图:创建和使用结构体

如果我们想在蓝图中创建一个类,或者一个对象来作为一个整体,保存一些,一系列的属性,而只是单纯的修改和获取它的值,那么这就是结构体Struct.

那么在蓝图中怎么去创建一个结构体类型呢?当我们创建一个变量后,可以在类型列表中找到Structure列表,这些都是蓝图中为我们提供的一些结构体类型.

这里写图片描述

我们可以随便选一个结构体类型,最熟悉的应该就是Transfrom结构体了把.那么我们如何去看这个结构体的内部变量呢?

这里写图片描述

这里涉及到一个有关结构体类型最重要的节点,打破结构体,就可以获得结构体的变量.Transfrom的结构体有三个变量,分别是Location,Rotation,Scale.位置.方向.规模三个属性.

这里写图片描述

现在我们来创建一个自定义的结构体.让我们回到主界面,在内容空白处右键,点击Blueprints下的Structure按钮.

这里写图片描述

然后更改这个struct的命名.这个名字就作为你自定义的结构体的名字.

这里写图片描述

双击点开你所创建的结构体.然后可以看到,我给这个结构体设置了两个变量,且在下面为这两个变量设置了默认值.id的默认值是0,name的默认值是NULL.修改完之后,别忘记Save保存.

这里写图片描述

然后回到关卡蓝图中.创建一个变量,然后设置它的类型为,我们刚创建的类型.MyStruct.记得Compile,否则无法跳出来默认值.

这里写图片描述

在创建结构体变量的时候,我们可以给变量重新设置初始值,然后拖动到事件图表中去Get.获得此变量.然后打破这个结构体.可以获得它内部的变量.

这里写图片描述

我们可以通过Make Listeral String节点构造一个字符串.然后通过Append节点把字符串连接起来,创建一个自定义的字符串.然后输出.

这里写图片描述

编译后执行,可以看到我们成功输出了这个结构体的内部变量值.

这里写图片描述

之前我们只是单纯的读取了结构体变量的内部变量的值.下面我们来在执行过程中去修改结构体变量的值.我们从变量栏中拖出来这个结构体变量,然后选择Set菜单项.然后在事件图表中右键输入make my,因为之前我创建的结构体命名为MyStruct.通过Make节点去定义了一个临时的结构体变量.然后用这个结构体变量去更改整个结构体变量.

这里写图片描述

这里写图片描述

但是这样却是有一个问题.因为结构体中,我们只是想单纯的修改一个变量,那么其他的变量该怎么办呢?难道获得结构体变量,然后打破结构体,一个个的连接起来吗?下图中,我们只是想单纯的修改id,保留name值.

这里写图片描述

但是结构体中的变量一旦多了,这样做是非常不现实的.所以如果只是想单纯的修改结构体中的为数不多的变量的,可以使用Set Members节点.右键输入set members 可以获得你所创建的结构体类型的节点.但是发现这个节点没有可以设置的项,所以我们点击这个节点,在Detail窗口可以看到.

这里写图片描述

在这里我们只是想修改id,而不修改name.所以只需要显示id,然后设置为100.

这里写图片描述

接下来通过打印判断这样修改是否正确:

这里写图片描述

编译后运行,发现却是只修改了id,保留了name.

这里写图片描述

结构体的基本节点都在上面了,希望能够帮助大家.

  • 14
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值