一、使用转换类型节点,将获取到的物体转换到该类型,进行获取对应类型上的变量或者事件。(蓝图类与关卡蓝图通信)

1.使用自定义事件

2.使用类型转换Cast To..节点:想和谁通信就要类型转换到谁,这样就可以获得设置类型转换目标的所有的变量和事件函数。

3.使用IsValid节点判断传入的对象是否有效,为了防止出错。

通过自定义事件,在其他蓝图中调用该物体蓝图中的事件进行一些操作。

示例1:在场景中经过一定范围区域时,人物速度加速。

1.在Player 人物蓝图类中自定义事件,将CharacterMovment 组件拖拽到蓝图中,在运动组件中,去设置最大移动速度。

2.因为要设置Speed 的值,所以我们可以在自定义事件上,将速度的值直接传入。将 设置中的变量节点直接拖拽到事件上,直到有对勾出现,然后放置,会自动在事件上生成一个变量。然后将节点连接。(或者选中事件节点,在细节面板中设置变量,然后连接节点)

3.在场景中创建Basic下的BoxTrigger,并放置区域大小自己定义,

4.蓝图间的通信:打开关卡蓝图,选中世界大纲中的box Trigger进行创建重叠进入,重叠退出事件节点,(当物体重叠之后,重叠进入事件也是在执行的)

5.在重叠节点中,可以获取到与触发器重叠的Other Actor ,但是可能在场景中有很多物体都与触发器进行重叠,所以可以使用类型转换节点,获取到我们想要的物体,进而获取物体身上蓝图类中的变量还有事件。(类型转换后边的类型为人物蓝图类名,我的例子中使用的是Test_Player蓝图类,找自己场景中拖入的人物模型对应的文件夹下的蓝图类类名即可),右键搜索创建Cast to Test_Player节点

系统自带的第三人称蓝图

6.为了避免错误,所以使用判断对象是否可用节点 IsValid ,判断类型为转换类型节点中 As _ _的类型。如果有,将获取该角色蓝图类中的事件,进行速度设置,如果在该蓝图中经常用同一个类型的Player,可用直接提升为变量进行保存,后期获取或设置很便捷。

7.编译后运行。查看效果。

二、在人物蓝图类中控制一个其他物体旋转(两个蓝图类中的通信)

1.新建一个蓝图类名称为Rotation,打开该蓝图类,在Component面板增加Cube

2.在事件图表中,创建自定义事件,名称为旋转开始,我的蓝图中,增加变量名称为Rotting,类型为布尔型,因为要控制物体旋转的开始及停止,使用FlipFlop节点,并设置变量bool值

3.使用用Tick事件节点的每帧都执行,对该物体的旋转进行设置,因为存在开关,所以获取Rotting 变量,使用Branch节点,对情况进行区分,停止的时候物体旋转值为0(沿Z轴旋转)

4.整体图

5.打开人物角色对应的蓝图类。因为要获取到要控制哪个物体进行旋转,(蓝图之间的通信)所以创建一个变量,该变量的类型就是上面创建的盒子的蓝图类类型(直接在类型中搜索Rotation类型),并将该变量改成共有。然后再场景中放入Rotation蓝图拖拽到场景中,并将该物体设置到人物蓝图中。

(相当于:Unity 在脚本中一个物体身上实现旋转操作脚本Rotation类,并将开启方法暴露,然后再人物模型身上的脚本中声明一个public Rotation obj 变量,然后再场景中将该物体拖拽到人物面板上的操作)

选中人物模型在细节面板中有默认栏,下面有我们自定义的变量,通过后面的吸取图标对场景中拖入的Rotation进行吸取。(也可以点击人物,在细节面板右侧有个小锁标志,代表将当前的面板固定,不在更改,然后在世界大纲视图选中Rotation物体,拖拽操作,会提示有绿色框)

拖拽操作:(操作完成后记得将锁图标打开,不打开,之后无论选什么物体,该面板都不会发生变化,更改值也是针对Player进行的更改)

6.回到人物蓝图类中,在事件图表界面编辑控制逻辑,使用G键控制物体旋转,获取Rotation变量,对该变量进行判断,是否有对象使用IsValid节点,Input Object 连接Rotation变量节点,调用Rotation中的旋转开始事件

7.所有蓝图中都编译,运行按G键查看效果。

三、场景中存在多个同类的物体

1.如果场景中有多个Rotation蓝图类的物体,可以使用Get All Actors Off Class,获取场景中所有类型为Actor Class 的物体,输出项为数组。在Actor Class下选择想要查找的物体。这里选择Rotation

2.控制数组中的某一个,使用获取数组的Get节点,输入参数为数组的角标,如果角标越界会报错,所以也要使用判断物体对象是否有效

3.控制场景中的Rotation蓝图Actor 全部旋转,使用foreachloop节点进行控制。

4.编译后运行。

UE4-(蓝图)第二十课蓝图之间的通信(类型转换、公开变量)相关推荐

  1. 第二十课 Django Admin后台管理

    第二十课 Admin后台管理 1. admin创建用户 创建管理员账号: python manage.py createsuperuser# 按提示输入用户名.邮箱.密码 2. 注册模型 如果只是在a ...

  2. 进化论的再思《基督教与科学》第二十课

    黄牧师 一.介绍四位学者 潘柏韬博士.弗兰斯‧科林博士.赛门康威‧莫里斯博士(不要与亨利莫里斯混淆,亨利博士是已故土木工程师.赛门康威•莫里斯博士是现任剑桥大学古生物学系主任,是世界首席的寒武纪大爆炸 ...

  3. Python界面编程第二十课:Pyside2 (Qt For Python)文本编辑框QTextEdit

    先看完整代码: from PySide2.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit import sys from ...

  4. 第二十课 【ERC1155实践】欧阳询书法复制品从确权设计到买卖测试

    1,摘要 [本文目标] 通过本文学习,了解以太坊ERC1155标准规范和ERC1155Mintable可增发智能合约函数功能,并通过一个有趣的故事完成功能测试. [前置条件] 1)对以太坊ERC20( ...

  5. 网络编程第二节之设备之间的通信(TCP/IP)

    网络编程第二节 单向通信 双向通信---- 较复杂的双向通信---- 单向通信 这算时间在不断学习,发现越发内卷,都说程序员是新一代农民工,现在只能多搬搬砖了- 我们几乎每天都在上网,普通人只知道上网 ...

  6. C语言第二十课:实用调试技巧

    目录 前言: 一.Bug: 二.调试: 1.调试是什么: 2.调试的基本步骤: 3. Debug 与 Release : 三.在Windows环境下进行调试: 1.调试环境的准备: 2.调试的快捷键: ...

  7. 第二十课.DeepGraphLibrary(一)

    目录 DGL安装 图 图与图的创建 从外部源创建图 异构图 在GPU上运行DGL 消息传递范式 内置函数和消息传递API 消息函数 聚合函数 更新函数 单独调用Edge-wise更新边特征 在子图上进 ...

  8. 第二十课.卡尔曼滤波器

    目录 卡尔曼滤波器的参数 滤波问题的解决方案 卡尔曼滤波的predict和update 基于正态分布得到解析结果 证明解析解存在 解析解计算 卡尔曼滤波器的参数 首先回顾卡尔曼滤波的概率图: 基于之前 ...

  9. 新版标准日本语中级_第二十课

    语法   1. か的省略:疑问句的句尾有时会出现省略助词か的现象,此时句尾读升调.句尾是~です时很少省略,但是~ます时则经常省略.省略か会给人略显亲切的感觉. コーヒー飲みます?(来杯咖啡吗?)    ...

最新文章

  1. 图灵奖得主Geoffrey Hinton:脱缰的无监督学习,将带来什么
  2. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧
  3. 求n的阶乘的算法框图_单片机常用的14个C语言算法
  4. p3d gauge 尺寸问题
  5. .net runtime占用cpu_追踪将服务器CPU耗光的凶手!
  6. linux 安装rpm包时遇到error:Failed dependencies解法方法
  7. 解决 php提交表单到当前页面,刷新会重复提交 的问题
  8. 将本地项目上传到github详解
  9. Tsung压力测试工具的搭建和使用,配置。
  10. LabVIEW编程LabVIEW控制MMC-100位移台例程与相关资料
  11. 基于ATECLOUD云测试平台,数字万用表采集电阻测试方案
  12. 机器学习:AI数据集划分(训练集、验证集、测试集)
  13. 百度云分享文件自己设置密码
  14. 【Qt】动态刷新lcdNumber显示的值
  15. 动手实现一个docker引擎-1-从内核到docker的三驾马车
  16. noi2008 假面舞会
  17. 微服务网关:SpringCloud Gateway保姆级入门教程
  18. Tigase下载安装(Linxu+Window版本)实现教程+配置聊天记录入数据库
  19. ArcGIS Pro鹰眼图快速制图
  20. SDU程序设计思维Week6-限时模拟 掌握魔法の东东II

热门文章

  1. 恐怖黎明修改器|恐怖黎明十四项修改器小斧头版下载 v1.4最新版
  2. 腾讯面试题目(大家围观下,看你会不会)
  3. 平安证券一直显示服务器满,完美完美登录显示服务器人已满,咋也进不去, – 手机爱问...
  4. Gradle基础:1: 简介与安装
  5. 分布式的在线教育系统的实现与应用
  6. Notepad++设置双窗口模式
  7. 使用Go基于国密算法实现双向认证
  8. 在java中实现access数据库的远程访问
  9. 学习一下秒杀系统的设计,以及需要考虑的问题
  10. 一种基于霍尔传感器的电机转子转速的测量