p36-p39蓝图通信、自定义事件、类型转换、角色移动速度、触发加速
- p36蓝图通信和自定义事件
- 蓝图通信
- 自定义事件
- p37类型转换
- 加速功能
- 类型转换
- p38创建自定义事件
- p39实现触发加速
p36蓝图通信和自定义事件
蓝图通信
在Unreal
Engine(UE)中,蓝图通信是指蓝图之间的信息传递和交互过程。蓝图是UE中用于创建游戏逻辑和功能的可视化编程工具,而蓝图通信允许不同蓝图之间发送和接收数据。蓝图通信可以通过以下几种方式进行定义:
事件(Event):事件是一种触发式的通信方式,一个蓝图可以定义一个事件,在特定的条件满足时触发,并向其他关联的蓝图发送信号。其他蓝图可以通过绑定到事件的节点来接收并响应该事件。
函数调用(Function Call):蓝图可以通过函数调用向其他蓝图发送消息。函数可以在一个蓝图中定义,在需要的时候可以调用该函数,并传递参数给目标蓝图。目标蓝图可以接收参数并执行相应的逻辑。
接口(Interface):接口允许多个蓝图之间通过共享功能来进行通信。接口允许定义一组函数和事件,这些函数和事件可以在不同的蓝图中实现,并通过接口进行调用和触发。
委托(Delegate):委托是一种方法回调的机制,允许在一个蓝图中定义一个委托事件,并将其绑定到其他蓝图中的函数。当委托事件被触发时,绑定的函数会被调用,并执行相应的逻辑。
通过这些定义方式,UE中的蓝图可以进行灵活的通信和交互,实现复杂的游戏逻辑和交互效果。
自定义事件
在Unreal
Engine(UE)中,自定义事件是一种在蓝图中定义的特定条件下触发的事件。它允许在蓝图之间进行通信和交互,以实现特定的功能和逻辑。自定义事件通常具有以下特征:
定义位置:自定义事件是在蓝图编辑器中创建和定义的。你可以在任何蓝图中创建自定义事件,包括角色蓝图、关卡蓝图和动作蓝图等。
触发条件:自定义事件通过设置特定的条件来触发。这些条件可以是某个变量的值、某个时间的流逝、某个触发器的触发等。
输入参数:自定义事件可以定义输入参数,以便在事件触发时传递数据给其他蓝图。输入参数可以是任意类型的数据,如整数、浮点数、布尔值、向量等。
事件逻辑:自定义事件可以包含一系列节点,用于定义事件被触发时所执行的具体操作和逻辑。这些节点可以是变量修改、函数调用、复杂的逻辑运算等。
事件触发:在满足触发条件后,可以通过调用自定义事件节点来触发事件。触发事件会执行该事件内的所有逻辑,并且可以将输入参数传递给其他蓝图。
通过使用自定义事件,你可以实现不同蓝图之间的相互通信和交互,以实现复杂的游戏逻辑和功能。它提供了一种灵活和可扩展的方式来组织和管理蓝图中的事件触发和响应。
p37类型转换
加速功能
目标:实现与加速物体碰撞后触发加速功能
创建Actor蓝图类重命名为“出发加速_BP"
在组件添加Box Collision触发盒子
打开事件图表,添加蓝图“组件开始重叠”和“组件结束重叠”
添加蓝图”类型转换为ThirdPersonCharacter“(目标是玩家操纵的角色)
类型转换
要更改另外一个类里面的数据一些变量,就需要类型转换到对应的对象,产生联系,之后再更改里面变量
需要和谁产生联系就用Object节点连接 因为类型转换为ThirdPersonCharacter,所以,玩家触发的就会走执行输出引脚
其他东西触发的执行CastFailed引脚(类型转换失败) As Third Person Character处引脚:类型转换完成后,可以通过此引脚获得类里的变量
p38创建自定义事件
打开蓝图ThirdPersonCharacter,在组件中可以看到”角色移动CharMoveComp(继承)“这个组件里包含了很多运动,行走、游泳、飞行等
在蓝图ThirdPersonCharacter中,我的蓝图中,图表,新建图表,重命名为“触发加速”
打开”触发加速“图表,搜索custom event(自定义事件),重命名为"触发加速_Event",拖拽ThirdPersonCharacter进入蓝图,搜索set max walks
选择设置Max Walk Speed(最大步行速度)(这一步可以手动更改了当前行走速度,但是此次目的是碰撞触发盒子后在触发盒子一边的蓝图进行更改速度,如此这个自定义事件就可以用于更多的蓝图(可拓展性))
从Set的Max Walk Speed输入引脚拖出引线拉到"触发加速_Event"蓝图上可以显示添加引脚到节点
p39实现触发加速
从类型转换的As Third Person Character引脚处拉出引脚搜索”触发加速 Event“
调整最大行走速度的值即可,蓝图如下
如此即可在进入此”触发加速_BP“的区域时加速,离开此区域减速(可以实现冰面等效果)
举一反三,此功能可以实现和火焰重叠扣血,吃药加血等事件