ue4个人学习笔记4

本文围绕游戏蓝图开发展开,介绍了拾取钥匙开门的实现,包括在门蓝图类设变量、给钥匙蓝图类加碰撞等操作。还阐述了多种蓝图通信方式,如类型转换、引用变量等,以及自定义事件的创建和使用,还有物体自转的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、拾取钥匙开门

在door的蓝图类新增一个布尔变量“是否可以开门”,添加“分支”(通过变量产出true或false)

另建立一个蓝图类:钥匙

对于拾起的物体,可以添加球型碰撞,sphere collision(就不用盒体触发器了)

使用“get all actors of class”,并指向door_bp的蓝图类,则能输出door_bp蓝图类的所有实体的数组,这时再”get“数字0,即指向数组第一位,即第一个门,然后将该门的“是否可以开门”设置为true.

最后用到“destroyActor”销毁钥匙

↑我设置的是一碰到钥匙就拾起,而不按E

 

 

2、蓝图通信

蓝图通信方式有很多

 

蓝图通信方式①一种是,类型转换为某蓝图类,如一个加速盒子类类型转换为小人类(因为要改变小人的速度)

3、自定义事件

蓝图间产生联系后,要触发自定义事件,首先得创建自定义事件,可左侧新建图表,在里面创建自定义事件

可将所需值传到自定义事件,这样改变值只需要外面用的时候输入改变值即可

 

使用自定义事件

注:other actor要和object连接,两蓝图才能产生联系

 

3、引用变量

类型转换后可以将其提升为变量,方便以后使用

 

4、物体自转

使其旋转坐标增加“AddLocalRotation”,并不断重复这个过程,用到“事件Tick”,每一帧都执行

 

蓝图通信方式②另一种蓝图通信方式,是

生成一个变量,将变量类型设置为需通信的蓝图且为引用变量,这样从该变量拉出来的线可以执行该变量的蓝图类的自定义事件,但一定注意的是,需先将该变量设为公有(右边眼睛),再然后在世界中点击小人,将其这个变量赋值,赋值对象即你要旋转的对象.

这种方式只能使小人对某一实体操作,若对象特别多,则需要添加特别多的变量,这是十分麻烦的,下面的另一种蓝图通信方式能解决

 

通信方式③

使用如拾取钥匙开门时使用的“get all actors of class”,然后就能选择数组中的一个,或者使用循环遍历“forEachLoop”使全部都旋转

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值