斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论

概述

本篇文章将会展示Gameplay另一个用法,也就是我们最常见的使用特定道具交互特定的机关。例如本文要实现的,获得不同的钥匙卡,然后根据钥匙卡打开不同的箱子。

目录

  1. 创建拉杆
  2. 创建标签
  3. 修改宝箱

创建拉杆

首先快速创建一个拉杆,其中使用到的静态网格体都可以从ExampleContent/Meshes中找到。

其中,HandleMesh的默认旋转值为Y=30°,之后拉下拉杆,我们会将其设置为Y=-30°。

创建Actor蓝图

由于此拉杆要和我们角色进行交互,这里需要继承以前实现的GameInterface接口,该接口允许带有SurInteractionComponent组件的角色对其交互,并执行接口中定义的Interact函数。具体的可以参考这篇文章:https://www.bilibili.com/read/cv18878087,或者查看课程第四章第10节。

添加接口

对Interact函数进行重载。这里仅仅定义了拉杆最基本的功能,之后还会有其他补充:

重载函数

一次性拉杆

创建标签

接着创建钥匙卡相关标签。在项目设置->GameplayTags中创建KeyCard.Blue和KeyCard.Yellow(蓝色钥匙卡和黄色钥匙卡)

新建标签

接着为刚才创建的拉杆创建一个变量KeyCard,表示这个拉杆对应的钥匙卡是哪个。

这里可以为其设置默认值,也可以勾选可编辑实例,让这个属性暴露的UE编辑器中,这样我们就可以在蓝图外修改它对应的Tag了。

新建Tag变量

为刚才重载的Interact添加赋予标签的功能,当角色与拉杆交互时,拉杆会获取角色的ActionComponent,并将自己的钥匙卡标签赋予给角色。

修改蓝图

修改宝箱

与拉杆对应的,我们也要修改宝箱的逻辑,能让其对钥匙卡作出反应。宝箱相关的内容,还是可以参考这篇文章:https://www.bilibili.com/read/cv18878087,或者查看课程第四章。

为宝箱添加一个Tag类型的变量,表示该宝箱需要的钥匙卡类型。同样的,勾选可编辑实例将其暴露在编辑器中。

创建RequireKeyCard变量

在原来打开宝箱的逻辑前面添加上检查钥匙卡的蓝图节点。在每次试图与宝箱交互时,都会检查交互者身上的标签,如果拥有Require Key Card标签,那么就可以打开宝箱。

添加检查标签的蓝图节点

将拉杆拖到场景中,我们可以直接在右侧的细节面板调整拉杆对应的钥匙卡Tag

修改拉杆对应的钥匙卡标签

同样的,我们可以在右侧的细节面板调整宝箱所需要的钥匙卡Tag。

修改宝箱所需要的钥匙卡Tag

进入游戏,查看最终结果。

可以从左上角的Debug信息看到,一开始角色没有钥匙卡标签,试图打开箱子的时候(图里会出现绿色的线)是没有任何反应的,

与拉杆进行交互后,角色获得了钥匙卡标签,此时就可以与宝箱进行交互了。

最后还有一个细节,我们在使用蓝图节点HasTag(拥有标签)时,注意到下面有一个Exact Match。就如描述所说的,如果勾选上的话,在判断是否拥有标签时,会要求进行比较的标签之间是完全相同的。这里完全相同的意思是要求其父标签和子标签是完全一样的。

反之,如果不勾选的话,将会进行一定程度的模糊搜索。如下图所示:

箱子的Require Key Card像如图设置。如果不勾选上的话,只要求父标签为KeyCard,这样的话只要父标签是KeyCard,不管拿到什么颜色都能打开箱子。

反之,如果勾选上的话,如果你拿的KeyCard带有子标签,那么就意味着这些KeyCard都打不开箱子,毕竟此时的箱子,只认KeyCard单独一个父标签。

斯坦福 UE4 C++ ActionRoguelike游戏实例教程 13.使用GameplayTag实现使用钥匙卡打开箱子的更多相关文章

  1. Cocos2d-x3.0游戏实例《不要救我》第十篇(结束)——使用Json配置数据类型的怪物

    如今我们有2种类型的怪物,并且创建的时候是写死在代码里的,这是要作死的节奏~ 所以.必须可配置.不然会累死人的. ; i < size; ++i) { int id = root[i][&quo ...

  2. Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/musicvs/article/details/25368273 好吧.我真心全然搞不懂.我如今仅仅只 ...

  3. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇:简介及目录》(附上完整工程文件)

    G-3D引擎2D射击类游戏制作教程 游戏类型: 打飞机游戏属于射击类游戏中的一种,可以划分为卷轴射击类游戏. 视觉表现类型为:2D 框架简介: Genesis-3D引擎不仅为开发者提供一个3D游戏制作 ...

  4. 值得 Web 开发人员收藏的20个 HTML5 实例教程

    当开始学习如何创建 Web 应用程序或网站的时候,最流行的建议之一就是阅读教程,并付诸实践.也有大量的 Web 开发的书,但光有理论没有实际行动是无用的.现在由于网络的发展,我们有很多的工具可以用于创 ...

  5. 3Ds Max实例教程-制作女战士全过程

    3Ds Max制作“女战神” 作者:Diego Rodríguez 使用软件:3Ds Max,Photoshop 3Ds Max下载:http://wm.makeding.com/iclk/?zone ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. 值得 Web 开发人员学习的20个 jQuery 实例教程

    这篇文章挑选了20个优秀的 jQuery 实例教程,这些 jQuery 教程将帮助你把你的网站提升到一个更高的水平.其中,既有网站中常用功能的的解决方案,也有极具吸引力的亮点功能的实现方法,相信通过对 ...

  8. Web 开发中应用 HTML5 技术的10个实例教程

    HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...

  9. python迭代器与iter()函数实例教程

    python迭代器与iter()函数实例教程 发布时间:2014-07-16编辑:脚本学堂 本文介绍了python迭代器与iter()函数的用法,Python 的迭代无缝地支持序列对象,而且它还允许程 ...

  10. 《HTML5与CSS3实例教程》

    <HTML5与CSS3实例教程> 基本信息 作者: (美)Brian P. Hogan 译者: 卢俊祥 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:97871153634 ...

随机推荐

  1. 【Python进阶-PyQt5】00搭建PyQt5环境

    1.创建独立开发虚拟环境 1.1虚拟环境简介 我们编写的程序,有时用到的Python库是不一样的,比如说开发桌面应用程序我们主要用到PyQt5相关的Python库.开发Web应用程序我们主要用到Dja ...

  2. 前端三件套系例之CSS——CSS3基础布局

    文章目录 css基础布局 1.布局相关的标签 2.盒子模型 2-1 什么是盒子模型 2-2 margin外边距 2-3 padding内填充 2-4 案例 3.浮动(float) 3-1 什么是浮动 ...

  3. TopCoder 15903 EllysNim

    TopCoder 15903 EllysNim(https://vjudge.net/problem/TopCoder-15903) \(n\)看似有点东西,实际上就只是一个贪心... 设\(i\)表 ...

  4. Go泛型解密:从基础到实战的全方位解析

    本篇文章深入探讨了Go语言的泛型特性,从其基础概念到高级用法,并通过实战示例展示了其在实际项目中的应用. 关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互 ...

  5. Python - 字典3

    修改字典项 您可以通过引用其键名来更改特定项的值: 示例,将 "year" 更改为 2018: thisdict = { "brand": "Ford ...

  6. 快速展示原型之Minimal API开发

    Minimal API官网地址: https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/minimal-apis/security?vi ...

  7. Python合并多个Excel文件中的指定sheet

    本文将介绍一个用于合并多个Excel文件中指定sheet的Python代码.这个功能可以方便地整理和分析数据.我们将逐步解释代码的每个部分,并提供示例用法. 导入库 首先,我们导入了需要使用的三个库: ...

  8. Mysql面试大全

    说说MySQL索引的底层数据结构 MySQL索引的底层数据结构是B+树数据结构 详细介绍一下B+树的数据结构是什么样子的 B+树有三个特性 B+树是一个平衡多叉树,与平衡二叉树的每一个节点下面最多有两 ...

  9. 用结构化思维解一切BUG(3):实际案例

    背景 本文是系列文章<用结构化思维解一切BUG>的第 3 篇,也是最高潮篇!本系列文章主要介绍一种「无需掌握技术细节,只需结构化思维和常识即可解一切BUG的方法」. 在前序文章<用结 ...

  10. excel对比两个文档,判断范围内的取值是否在另一个列表内存在(vlookup函数的使用)

    背景: sheet1表为原始数据: sheet2表为新的数据副本, 目标是查询sheet2列表中是否存在sheet1表的数据,并且标记出来,且获取sheet2列表的一些数据至sheet1列表中,补充D ...