p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统
- p40对象引用、变量有效性
- p41实现键盘控制物体自转
- 创建bool值控制旋转
- 实现通过键盘控制自转
- p42p43简单点名系统
- Get All Actors Of Class(获得场景中所有该类的actor演员)
- get
- For Each Loop
p40对象引用、变量有效性
当在一个节点上需要连的线太多,或者需要连接到另一个图标中时,可以创建一个变量,把引脚传到变量里面,则此变量代替了节点的蓝图
操作方法1:新建一个变量,在变量类型里选择想要代替的蓝图
操作方法2:拉出蓝图引脚,选择提升为变量
注意:操作方法12创建出的变量都还没有赋值,只是代表原蓝图的一个概念,使用前要判断此变量是否是有效的
p41实现键盘控制物体自转
创建Actor蓝图类,添加一个立方体,在图表拉出立方体,拉出引脚搜索AddLocalRotation(添加本地自转)
调整Delta Rotation即可调整选转角度(每1是1°)
直接连接只会旋转一次(如2只会旋转2°就会停下),本次目标为自转,所以需要有一个循环(就会旋转2°,旋转2°…),添加事件Tick会达成自转效果,每一帧旋转
创建bool值控制旋转
如同连接,注意bool是否可以旋转不要勾选,因为目的是按键才能旋转,所以初始不能旋转
实现通过键盘控制自转
创建自定义事件(控制是否可以旋转bool值什么时候是对什么时候为错)
创建分支节点和两个“set是否可以旋转”如下图
也可以用flip flop
flip flop和分支的区别是flip flop只能第一次执行A第二次执行B,循环往复有局限性,分支可以第一次执行A第二也次执行A,而且还可以改变初始的bool值对错,可拓展性强
打开玩家角色蓝图ThirdPersonCharacter,创建新图表”控制物体自转“,创建变量“自我旋转”,设置变量类型为”物体自转_BP“
如同搜索蓝图连接
?Is Valid蓝图在变量是有效时走Is Valid,无效时走Is Not Valid
编译保存会发现没反应,因为还没给引用的”自转物体“赋值
点亮眼睛,在视口选中玩家角色,会在细节面板找到默认-》自我选择
选择键盘控制物体自转即可
或者点击吸管形状物体,在视口点击要进行控制自转的物体就会自动识别
p42p43简单点名系统
p41中的物体数量多时,想让其同时自转,需要的连接太多了,需要简单点名系统
Get All Actors Of Class(获得场景中所有该类的actor演员)
使用前先在Actor Class选择完类在拉出引线
用Get All Actors Of Class(获得场景中所有该类的actor演员),从Out Actors拉出引脚搜索“数组get”,复制“事件控制旋转”,如此可以实现按键随机在所有同类型物体里随机一个自转
用Get All Actors Of Class(获得场景中所有该类的actor演员),从Out Actors拉出引脚搜索For Each Loop(对于每个循环),复制“事件控制旋转”,如此可以实现按键,使所有同类型物体自转
get
获取场景中某一个该类的演员
想要执行第n个就在2的位置写n-1的数
For Each Loop
循环遍历场景中的所有该类的演员(和场景中的所有该类的演员都通信一次)
completed:完成之后执行此节点
Array Index:当前循环的是第几个就传出个几(第二个传出个2)