全面了解UE5蓝图:Actor创建与消除、IsValid、获取actor信息、触发器等【第六章】...
Game艺视界原创文章原创 77055 0
实名

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

发布于 2023-6-15 17:15:53

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

x
#Actor中添加静态网格在我们内容浏览器中右键创建蓝图Actor

f41f89096962dda6316a993e0624a7a6.png

然后我们添加静态网格模型体组件

69b515fc0069c9927067ca1d6e62005b.png

再右侧细节面板添加我们需要的网格



我们将Actor摆放到场景中时候进行移动旋转操作后,不会对Actor本身有影响,但是如果我们双加Actor进行内部编辑旋转或位移时候会对我们当前场景中Actor有影响


如果我们将静态网格作为跟那么我们只能缩放


我们可以在场景中添加一个空对象场景组件


将场景组件作为跟这时候我又可以对植被进行移动与旋转



#获取Actor信息获取静态网格世界坐标位置,进入蓝图-->事件图标-->输入获取世界位置



如果我们在Actor中移动了坐标那么我们在获取的时候就会自动加上我们移动的坐标距离



相对位置(Relative location)不显示场景中坐标位置


根据父对象获取静态网格物体的位置 所以现在父对象就是这个并且它在这里放置在(0,0,0)上,我们的静态网格的偏移量为 60


旋转(求和)Actort内部旋转+外部旋转值



缩放(内部乘以外部)



获取世界变换;获取自身变换



#Actor创建与销毁打开关卡蓝图spawn actor,这个在游戏下


然后选择我们的Actor



第二件事设置我们出生位置,新建变量就可以设置我们出生位置,点击播放就可以生成


重生后销毁我们的椰子树它有一个函数 destroy actor 我们设置下键盘q销毁这样一个循环




#Is Valid校验

当我们生成椰子树以后,可以通过键盘上一个按键获取椰子树坐标信息,当我们摧毁后需要验证器检查场景是否出现了这个BP然后再返回信息,否则会报错;这很简单,检查我们如何验证我们的生成Actor,是否出现在场景中并且在这种情况下我们不会破坏我们的游戏







#获取场景中Actor信息我们需要做的是我们需要得到这个函数得到所有类,所以得到类的所有演员这是可以从一个类型中得到所有演员的函数,所以在这里①我要选择 BP 这是我的演员 BPyezishu 我要把它连接到这里,当游戏开始时,它会调用这个演员,这样我们就可以得到场景中的所有演员这里②我们有一个数组



所以我要拖到这里并输入get我要在这里得到一个副本,我们将从索引 0 开始


接下来我们需要创建一个这种类型的变量,所以为了容易理解如何创建这种类型的变量,只需在此引脚上单击鼠标右键,然后单击“提升为变量”





这样您就可以在此处设置一个新变量,我将其命名为 All Actor


我们要把它分配给这个数组让我们用 X 创建一个小函数,所以我想用 X 设置Actor的旋转我要右键单击并搜索 set Actor Rotation 把我们的All actor插入到Target然后设置旋转角度,然后设置X键控制我们actor旋转





#触发器我们有触发盒子和触发球体,所以我只需要选择


当角色进入框内出发事件,当这个角色离开这个体积时,我们也可以触发一个事件



运行时显示框


我们要做的是当我们进入触发框时我们将创建并产生一个bpyezishu当我们结束重叠时,我们将把它全部销毁




#mesh标签
双击我们蓝图进入细节面板搜索标签tag-->添加标签



01-所有Actor所以按0我要把我场景中的所有椰子树都拿到这里

02-然后我需要做的是我需要循环遍历所有仙人掌所以我要把每个循环拖放到这里03-这样我就可以开始遍历数组我要把我的数组连接到这个数组


04-现在我需要创建这个逻辑来检查Actor是否受到攻击,所以我要右键单击Actor好了,堆栈好了我要在这里连接我的数组元素我要搜索标签仙人掌,所以现在我正在搜索场景中所有仙人掌数组中的角色


05-我要做的是在这里创建一个分支,如果分支是真的,我将摧毁Actor,这是在摧毁场景中的仙人掌,现在我要将actor 返回值连接到条件,所以如果 actor 有堆栈并且条件为真,我们将转到分支并销毁该actor,我创建分支的原因是因为我需要验证我们的数组是否为空


06-我需要做的是从循环体开始有效我要拖放是有效的我只是检查我们的循环中是否还有仙人掌这只是为了不破坏我们的游戏


07-我需要做的最后一件事是我需要把所有的元素都拿到这里,所以我要点击获取数组,我要把它们连接到这里的验证器,所以我们要验证这个 数组不为空并且其中有项目以便正确执行分支


08-最后一件事是我们需要将此处的数组连接到销毁 actor 以便销毁actor 可以销毁场景中的仙人掌





#案例练习
绿色:生成随机位置椰子树
蓝色:随机缩放椰子树
红色:销毁椰子树



01-场景中选择我们触发器,蓝图右键单击这里,我要说Actor开始重叠所以当我们进入触发器


02-我们需要做的是我们需要按事件设置计时器,我要拖放到这里按事件设置计时器。这将做的是我要0.5我要开始循环,按事件置计时器将要执行的操作。这将使用此间隔循环一个事件(勾选Looping循环)


03-创建自定义事件你需要把你的自定义事件连接到这里的计时器,这样计时器就可以执行自定义事件


04-现在我们要在这里按类生成一个Actor
05-我们需要做的最后一件事是我们需要设置生成范围我要右键单击拆分结构销我不会按比例旋转我只是要放置位置坐标,所以我要右键单击拆分


继续拆分结构因为我想放置 X Y和 Z 坐标(用一个模型查看位置范围)


回到蓝图设置我们生成范围,这个将在场景中生成我的椰子树


我们需要做的最后一件事是我们需要清除计时器,因为如果我们退出触发器,它将继续生成元素,所以我们可以做的是首先右键单击你需要选择你的触发器,当我们离开触发器时通过函数名称清除计时器好吧!所以这将做什么它会阻止计时器循环并产生我们的Actor并调用它事件所以我要把它放在这里作为函数名称的事件名称


站在绿色平面,生成阶段效果



销毁效果
01-同样选择我们触发器,然后蓝图中右键添加设置计时器创建自定义事件


02-接下来我们需要获取有关我们场景中生成的所有仙人掌的信息


03-我们要检查这个数组中是否有仙人掌,所以我们需要创建有效检查不要破坏我们的游戏再次04-如果它是有效的,让我们说销毁Actor,我们开始销毁我们的仙人掌05-为了检查是否有效,您需要获取数组将其连接到输入,并且您需要连接到目标06-我们退出触发器,我们需要清除计时器


效果演示


随机缩放
01-我们进入我们的触发器02-我们设置计时器并且计时器开始循环调用仙人掌事件的这个变化比例03-自定义事件
04-然后获取场景中的所有仙人掌05-我们检查数组是否为空如果它不为空,06-我们从这个数组中获取一个随机数07-然后我们设置一个Actor比例我们将比例设置在从 0.2 到 2 的随机范围内,08-接下来的事情是当我们退出触发器时,我们只是清除计时器


完整效果演示


本期笔记分享就到这里,我们下期见!


评分

参与人数 6元素币 +46 活跃度 +20 展开 理由
dechuang + 8 + 3 看好楼主
盆子 + 8 + 5 楼主靠谱
swatlyh + 9 + 4 这就是大佬的世界嘛
莲花落 + 5 + 1 我有两个元素币,一个给你,另一个还是给你。
浮世绘 + 8 + 5 前排留名
zhangting1... + 8 + 2 带你赚币带你飞,元素里面有正妹。

查看全部评分

微信公众号:Game艺视界
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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