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

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. 深度 | 谷歌的新CNN特征可视化方法,构造出一个华丽繁复的新世界
  2. Coin Slider
  3. 统计完全二叉树的节点数
  4. JavaScript实现articulation-points(关键点)(割点)算法(附完整源码)
  5. Linux:hping高级主机扫描
  6. 为了不再颓废,不再堕落......转操作系统为ubuntu,转语言环境为java...
  7. ionic2开发的仿外卖点餐系统(Ionic2+Angular2
  8. php仿微信朋友圈网站源码,Smobiler仿微信朋友圈的消息代码实例
  9. 【Java】java测试--词频统计 ----IO流操作
  10. 动手学深度学习Pytorch Task07
  11. SocketDataHandler ConcurrentAsyncQueue Server/Client
  12. oracle最难的多表查询,Oracle多表的复杂查询
  13. 协议(Protocol)类比java中的interface
  14. shuipFCMS的开发记录
  15. Python 程序员需要知道的 30 个技巧
  16. kaggle上面的E-Commerce Data数据集练习(数据处理)
  17. html的中性标签,HTML的figcaption标签
  18. 千人规模互联网公司研发效能成功之路
  19. UE4-植被系统使用
  20. 网站制作与html教案,html语言与网页制作教案.pdf

热门文章

  1. 二、进程管理(一)进程与线程
  2. 数据分析师如何构建数据指标体系?理解以下四个模型就够了!
  3. 图注意网络GAT理解及Pytorch代码实现【PyGAT代码详细注释】
  4. 7月19黎明觉醒为什么服务器一直在维护,黎明觉醒游戏卡住了怎么办 游戏卡顿解决方法...
  5. 如何用3个方法做到照片数据恢复…
  6. rust睡觉按键没反应_rust简单按键介绍 | 手游网游页游攻略大全
  7. 小黑子—Java从入门到入土过程:第六章
  8. 判断闰年,公历转农历完整项目
  9. 修复 win10 打印服务器失败,win10专业版中使用这些解决方案修复打印机系统错误1797...
  10. 智能合约的投票、拍卖、远程购买、付款