UE(虚幻)4 蓝图可视化编程进阶篇 01 信息交互

通过两个蓝图类进行信息交互

新建一个文件夹 Blueprint  右键单击 新建BlueprintClass---- Actor  重新命名为BP_TestA  打开后新建一个StaticMesh 添加一个Cube,然后新建一个Actor 命名为BP_TestB 新建一个StaticMesh 添加另外一个模型  打开BP_TestA新建一个变量 Variables 重新命名为TestB  然后修改VariableType为BP TestB (静态模型的话就是 StaticMatchActor 类型)  然后修改类型为公开变量,然后新建一个方法 重新命名为 ShowMyName连接StringPrint  打印Self ——SetDisplayName  连接String。 BP_TestB 也一样 调用 TestB --中的 ShowMyName方法 然后在场景中选择 BP_TestB 找到DeFault 为TestB

添加TestB 运行程序就可以调用 Default 是可以修改的 在Detais选项下 找到Variable 下的Category选项进行修改 。

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

现在角色类中添加一个变量 TestB 然后修改类型为BP_TestB 然后设置为公开变量,然后在视图窗口中进行赋值。  然后再另外新建的蓝图类中 绘制蓝图   GetPlayerPawn  获取当前索引为0的角色 也就是Pawn类(中间的桥梁),这是返回的是一个Pawn类型 是角色类的父类 ,然后绘制 Cast To ... 就会找到Pawn的所有子类,选择要转换成的子类, 转换成功就会通过 As...来返回。。 然后找到 GetTestB 。然后让他调用 ShowMyName。如果要使用按键的话,要在Detais 的Input下选择Player0 接收。按下 2键向上移动100个单位 AddActorLocakOffset 设置移动的单位。。。。。。。以上的这种方法是在编译状态下实现的,如果要在运行状态下也是可以实现的,首先 在 BP_TestA类中 吧TestB设置为非公开的变量 这时候在视图窗口就找不到了 ,然后绘制蓝图 GetAllActorOfClass(获取某种类型的所有的物体) 然后再ActorClass下找到需要找到的类,输出是一数组,ForEachLoop 遍历 每次遍历都输出, 输出名称。通过你想要的名称进行= Branch ,这时候ForEachLoop中的ArrayElenment就是你想要的值 然后Set进行赋值TestB 。

蓝图类和关卡蓝图的信息交互

先打开关卡蓝图  关卡蓝图主要用于触发机关啊等等一系列逻辑 , 随便举一个例子   在关卡蓝图类中新建一个Add TimeLine..  进行编辑设置时间为3秒钟,然后选择一个物体获取他的引用 然后AddActorLocalRotation  然后Make出来你要旋转的方向  然后 GetWordDataSecconds *Float  就是每帧 执行多少。。我这里设置为 400,然后创建一个AddCustomEvent 重新命名为CE_RotateTheCube 。然后再BP_TestA中绘制蓝图摁下3键想办法调用关卡蓝图中的事件,Execute ConsoleCommand   然后在 Command中填上 ce CE_RotateTheCube 然后就会调用这个方法 冲关卡蓝图调用蓝图类是不可取的,因为那么多蓝图类不知道调用的是那个CE_...。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值