UE4信息交互-通过中间变量进行信息交互

来源:互联网 发布:12315投诉淘宝店铺 编辑:程序博客网 时间:2024/06/05 19:10

UE4版本 4.8.1
UE4信息交互-通过中间变量进行信息交互

在上一节中讲到在蓝图类之间-通过公共变量来调用变量的局限性比较大。
现在可以通过一个中间桥梁来引用变量。
通过这个桥梁就可以对引用的变量做相应的设置.
一般这个桥梁选择[Pawn]类型(ThirdPersonCharacter)
这样就可以在[ThirdPersonCharacter]类创建一些变量就可以其他地方使用。
因为[ThirdPersonCharacter]类对象是一直存在。


一、选择[ThirdPersonCharacer]角色类
左边选中[ContentBrower]->[ThirdPersonCharacer]->[Blueprints]->[ThirdPersonCharacer]角色类


1>双击[ThirdPersonCharacer]角色类
或者选中场景中的人物,然后选择右边[Details]->[EditBlueprint]下接框中的[OpenBlueprintEditor]打开人物图表
图1


二、在[ThirdPersonCharacer]类对象中创建变最
点击[Variables]->[+] 
创建变量,更名为[TheTestB]并设置[TheTestB]变量类型为[BP_TestB]设置为[public]
创建变量,更名为[TheTestA]并设置[TheTestA]变量类型为[BP_TestA]设置为[public]
[TheTestA]变量设置与下图类似,保存并编译。
图2


三、回到场景中选择[ThirdPersonCharacer]人物
在场景右边[Details]选项卡中,会看到[Default]下有[TheTestB]、[TheTestA]两个变量.
图3


四、为[TheTestB]、[TheTestA]两个变量设置相应的对象
可以通过快捷方式来设置,通过拾取器来设置。
择选变量后面的拾取器后,点击相对应的对象实例。
图4


图5




五、设置完变量后,就可以在任何类中使用。
可以在[BP_A]类中来调用并设置这两个对象。
通过一个方法来设置这两个物体的位置。


打开[BP_A]类图表.
在[Event Graph]图表中添加方式,设置[TheTextA]延Z轴移动100


1>首先要找到中间的桥梁[ThirdPersonCharacer]
鼠标右键选择[GetPlayerPawn]方法.这个方法是全局方法,可以在任何类中调用。
这样就可以获取索引为0的角色
图6


2>[GetPlayerPawn]返回的类型为[Pawn]类型
[Pawn]是[Characer]的基类,[Characer]是[ThirdPersonCharacer]的基类
图7




3>需要将[Pawn]通过CastTo方法强制转换为[ThirdPersonCharacer]子类
图8


图9




4>[CastToThirdPersonCharacer]方法有转换成功与失败的情况
成功:如果[ThirdPersonCharacer]是[Pawn]的子类就为成功。
失败:如果不是就是转换失败


然后通过[CastToThirdPersonCharacer]->[AsThirdPersonCharacer]找到变量[TheTestA]
图10


图11




5>这样就是通过中间桥梁来找到相就变量。
这样就可以设置变量[TheTestA]向上移动100
通过键盘[G]键,来触发事件.
需要选择菜单[Class Default]->[Input]->[AutoReceiveInput]选择[Player0]

这样才能接收键盘事件。当按下G键时,[TheTestA]实例向上移动。
图12


图13



6>以同样的方式去设置变量[TheTestA]向上移动100
图14




7>当按下键盘[G]键和键盘[H]键时两个物体都相应的向上移动
图15



0 0