您的位置:首页 > 产品设计 > UI/UE

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

2015-08-06 00:24 525 查看
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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: