UE5蓝图 | 枚举器?枚举变量解释、蓝图父类介绍
Game艺视界原创文章原创 39898 1
实名

通过了实名认证的内容创造者

发布于 2023-6-15 17:10:26

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 Game艺视界 于 2023-6-15 17:11 编辑

枚举器:是一种特殊的数据类型。它使变量成为一组预定义的常量,因此这个变量必须等于我们为它预定义的值之一,一个常见的例子,像一个指南针方向,如东、南或西、北,或者你可以用一周中的几天作为分子周一周二周三周四周五周六周日,这基本上是枚举器
在我们蓝图中创建枚举,从这里你可以看到我们这里有枚举并且有很多,不同类型的应用程序,它们是预定义的枚举器

f392b4151a7d11f635a56a4b5d3b00a7.png

让我们选择一个按钮点击。我将编译并保存并在按钮单击,我们有向下和向上、按下鼠标向上精确单击。这些是枚举器中的操作,并且它们是预定义的并且分子与数组非常不同。所以分子中重要的是你可以制作列表,可以在游戏中的任何地方访问,所以这是枚举器的简介
2d7ae5d64630479ba1d9f63be432911b.png

如果我们正在创建一个角色,在这里设置我们的角色正在运行我们的角色正在蹲下、跳跃、骑摩托车、汽车、游泳等等所以我们可以我们可以创建一个枚举器它将在此处定义我们角色的状态
#获取与设置枚举
在关卡蓝图中与BP中





将关卡的蓝图和我们在这里创建的蓝图彼此分离,但我们的想法是,这个枚举器在我们的关卡蓝图和我们在上面创建的第一个蓝图类中拥有相同的列表



设置一个枚举器(按住Alt拖拽到图表即可)


创建自定义枚举变量并且在蓝图类中使用它们,我们新建一个文件夹方便管理然后在资源管理器中右键创建枚举


创建好以后我们打开枚举
首先命名,这将定义我的角色状态保存它然后添加枚举



第一个走路,然后添加描述;然后添加第二个跑步;第三个游泳等。保存后现在我们有了角色状态回到我们的蓝图



我们要调用;新建变量-->然后更改类型-->搜我们创建好的枚举



选择后编译就可以看到我们创建的参数


测试结果俩个蓝图同时显示


我们还可以创建自定义事件设置为:驾驶、爬山、训练
你可以创建喜欢的事件在不同的蓝图类中使用它。为你的角色创建不同的设置,你在游戏中拥有不同的物品,以获得不同的角色技能等


比较枚举变量值
展示简单的分支,以及你如何比较不同的值并创建不同的逻辑,并用枚举器打印出来








#带有枚举变量的开关工具
使用 switch 我是右键单击这里,我要输入switch on(常量名字)就出现了一系列我们行为


我们可以通过在开关上选择实现我们运动方式



建议你通过你的变量连接到这里,你可以在你的蓝图中调用函数你可以启用开关,无论你想做什么;创建不同的逻辑使用开关,这样你就可以调用开关,然后键入你连接的枚举器的变量名称,并输入它是事件开始播放


或者你可以导入例如,自定义事件,我们可以创建一个自定义事件触发播放器状态,我们可以连接我们的触发玩家状态,当我们在这里启动它时,它会读取我们的枚举器和我们在这里设置的默认值





#蓝图类在这一章当中我们要开始谈论类在此之前我想简要谈谈游戏的结构这是一个游戏结构图,我们这里有一个游戏,在这个游戏中我们有不同的游戏模式,它们是不同的类。这里我们定义了我们的游戏模式(Game Mode),在这里我们定义了我们的游戏状态(Game State),我们有游戏模式,所以当我们创建时我们的类,我们可以在不同的模式之间切换,并在我们的代码中调用它这将是我们的类,我们将其称为游戏模式,从该类中,我们可以构建不同的游戏模式及其逻辑,我们可以调用它们并将它们切换为另一件事是游戏状态


#Actor什么是Actors这是虚幻引擎 5 中最常用的类,这个类是存在于场景它将具有位置旋转和缩放。这与我们在创建蓝图类Actors时所做的相同。我们将其拖放到场景中,因此这是一个项目或角色或类似的东西,它们将成为我们的一部分我们 3D 视图中的游戏世界请记住,每个Actors都有位置旋转和缩放这三个值始终可供我们的Actors使用,因为我们的Actors存在于我们的 3D 世界中第二件事是Actors有 tick事件,每次刷新帧,Actors可以在每一帧刷新,例如,如果你在我们的世界中对一个玩家造成伤害,你可以在每一帧刷新它,看看你造成了多少伤害并非所有类都有tick 事件第三件事是类Actors,它们可以在我们游戏的任何地方创建和销毁例如,在我们的游戏开始时,我们可以通过蓝图生成一个内部有一些逻辑的Actors,例如,如果我们开始我们的游戏,如果我们想要一个由 AI 驱动的骑士生成并在我们生成时攻击你可以用蓝图生成它你动态地了解这个Actors,而不仅仅是拖放到场景中,我们之前是如何做到的,您还可以动态地绘制它,例如,如果我们与 Boss 战斗并杀死那个 Boss,我们有一些很酷的死亡动画,然后你需要从我们的世界中摧毁这个Actors,这样它就会消失,这样你就可以触发销毁事件,销毁事件非常好,因为当你从场景中销毁一个Actors时,你也会将它从我们的 RAM 内存中删除游戏,这非常好,因为你从游戏中释放了运行的负载

Pawn是一个可以被拥有并从控制器接收输入的Actors;我们有一个Charactor角色它是一种 pawn,包括四处走动的能力;我们有玩家控制器(Player Controller)负责控制玩家使用。我们有游戏模式(Game Mode Base)和Actors组件和场景组件(Scenne Component)它们是不同的父组件您可以使用的类,这些类是最常见的,当然,如果您想使用另一个类,我们还有784 个项目可以看到我们有不同的类
将其中一个几何图形转换为一个类,选择模型在此处可以转到,你可以将选择转换为蓝图


我将单击此处我将选择新的子类和这是一个静态网格我将保留我在蓝图中的路径我将重新命名


现在我们已经从这个静态网格创建了一个类


转换后,我们可以看到我们可以编辑这个插入一些逻辑,例如,你可以从锥形跳下来,它可以在空中向你射击等等,所以这几乎是关于演员的



#蓝图类的组件蓝图编辑器中我们有我们的组件部分,所以几句话关于组件就像可以在Actors和其他类中使用的子对象这是它的广义定义。所以每个Actors都有一个根组件,这是我们的根组件默认场景根,每个根组件只有缩放转换,所以你不能在你的默认场景根组件上进行变换和旋转

在这里你可以从场景根组件放大或缩小所有东西,但你不能移动,这只是为了定义这个蓝图Actors有零零 XYZ和变换和旋转,从那一点你可以放入另一个对象可能是静态网格物体或灯光或相机并移动它们与(0,0,0)的这种变换相关
我要添加静态网格物体现在发生的事情是我们的静态网格物体是我们默认场景的子对象


我们的静态网格物体有变换位置和旋转,当然你可以改变变换位置相对于父对象或者它可以相对于世界


添加选择我们静态物体,然后我们可以移动旋转缩放。这些变量在这个转换中基于根场景 我只是要编译和保存让我现在把它放到场景中


现在在这里,我们已经很好地偏移了我们的圆锥体我们在 x 轴上将它偏移了负150,这就是为什么我的组件偏离中心一点点


我们可以用这个 BP actor 做的另一件事是我们可以在这个静态网格中插入另一个静态网格我要添加另一个静态网格以根为父


添加对象之间关系‍








如果我想对我的蓝图进行更改,可能会添加更多网格到我的蓝图中。我可以在蓝图视口中添加它,我可以编译保存如果这是一棵树我可以拥有这棵树。在我的场景中更新它所以这是与蓝图Actors一起工作并修改它们的很好的做法,你还可以添加点光、音频等其他资源来创建你的蓝图actor

#游戏模式
游戏模式类定义了游戏规则,例如游戏时长;另一件事是游戏模式的另一个例子是当游戏开始时你可以在这个类中当游戏结束时当关卡完成时。当然游戏模式类名称是A游戏模式基础首先我要点击世界设置,在世界设置中,我们有一个标签,上面写着游戏模式,现在游戏模式是 BP 和这里有一些游戏模式的东西,比如旁观者,比如玩家状态游戏状态玩家控制器 HUD 默认 Pawn Plus 等等这是游戏模式的设置



如果我想改变游戏模式我会右键单击此处选择蓝图类,这里的游戏模式基础游戏模式基础定义了正在玩的游戏,它是规则得分和游戏类型的其他方面,所以我只需单击它并将其命名为BP 游戏模式


这是我们的游戏模式,例如,如果我双击它,它就是标准蓝图,我们可以在这里定义一些游戏模式,创建好以后拖拽到世界场景设置中的游戏模式即可


我的第三人称控制器Pawn的类,角色逻辑



视口组件:相机、Bloom、骨架网格、显示角色方向的箭头组件这几乎是你设置游戏模式的方式


#pawn
骨骼是您通过控制器控制的东西或者您可以使用由 AI 控制的骨骼,请记住 pawn 具有位置旋转和比例,还有Pawn 是我们角色的表示,它如何在环境中移动以及谁控制它pawn 也可以由 AI 控制,所以让我们在类上创建所以我只是右键单击这里转到蓝图和这里第二个是一个可以被控制并从控制器接收输入的Actors请记住不能自动将 pawn分配给您的控制器您需要在开始游戏之前执行此操作这非常重要
创建这个 pawn 并将其命名为 bp11所以你可以在这里看到如果我双击它,我们有正常的类定义我们有我们有事件图、我们有构造脚本、我们有视口





我们在这里有设置好,我们再次将他放入世界场景设置中


#character acter角色我们谈到了pawn现在我要涵盖这个角色有点更复杂的pawn,所以角色继承了 pawn 并为其添加了新的能力,我们如何访问默认的角色控制器。这是一个由epic游戏创建的我将使用它来向你展示它里面的所有元素(角色移动)组件不能被删除角色需要它,下一个是骨架网格物体,骨架网格物体代表动画,它用于我们的动画和我们的角色所以这个角色被操纵了意味着它里面有骨头可以动画在这里你有位置旋转等和在这个角色组件中,我们有一个高级动画控制器,在动画中我们有一个动画类接下来我们有一个胶囊控制器,它在两个对象之间进行碰撞,所以如果我们要到墙上这个胶囊会撞到墙上,我们的角色不会穿过这堵墙我们在他身后有一个摄像头和一个摄像头吊杆代表相机和角色之间的空间,当然相机你可以上下调整,你可以旋转它甚至你可以删除和添加不同的相机到你的角色骨架网格你有角色运动前进的步数等这几乎是我们的角色控制器记住所有的事情


#Controller玩家控制器玩家控制器是负责控制玩家使用的棋子的Actors。您首先需要了解有关玩家控制器的一些事情即此类没有物理表示,因此您无法在 3D 或 2D 等游戏中看到它,例如,如果您正在创建手机游戏,则需要创建操纵杆,这将在视觉上代表控制器。但是如果您使用的是鼠标和键盘,或者可能是操纵杆这将不会在您的游戏中表示接下来是创建该控制器类以控制,它可以像操纵杆和鼠标一样被人控制,或者你可以用人工智能或 AI 来控制它。请记住,控制器可以接收通知我的意思是例如,如果我们的玩家现在正在行走,我们正在向角色提供我的控制器正在移动角色的信息,当我跳跃时,我们将通知发送到我们控制我们正在跳跃,此时我们可以禁用行走并进入跳跃状态,这样您就可以为您的控制器设置通知,无论是操纵杆鼠标键盘还是触摸屏,您都可以向控制器提供正在发生的事情的信息
控制器的最后一点要记住,虚幻引擎中的默认控制器你只能控制一部手机,这意味着这个控制器只能控制这个角色,例如,如果你正在制定像魔兽争霸这样的策略你需要同时控制几个单元你需要创建你的自定义控制器


下期我们更详细介绍Actor
本期笔记分享就到这里,我们下期见!
公众号链接:https://mp.weixin.qq.com/s/ALq_6s851nTa2HnID8LYSQ

评分

参与人数 3元素币 +22 活跃度 +5 展开 理由
别叫我名字... + 7 + 1 感谢
地平线 + 6 + 2 路过
hoyongjun + 9 + 2 腰间盘都没有你突出

查看全部评分

本帖被以下画板推荐:

微信公众号:Game艺视界
使用道具 <
boss28  发表于 2025-1-21 10:48:40  
2#
666666666
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表