zoukankan      html  css  js  c++  java
  • 蓝图通信的方法总结

    在学习终于到了一些关于蓝图通信方法的混淆,今天总结一下。

    在蓝图中信息之间的传递时极其重要的,这种信息之间的传递称之为蓝图通信,Unreal中蓝图通信的方法一共有四种,分别用于不同的情况,基本涵盖了所有蓝图之间的通信。

    第一种:直接蓝图通信

    最适用的情况:在Level中同时存在的两个Actor之间需要信息传递,那么就可以使用直接蓝图通信法。

    这里大概阐述一下,假设ActorA需要使用ActorB中的信息,那么在ActorA的蓝图中创建一个以ActorB为数据类型的变量,如此一来,将变量拉进去使用就可以调用信息了,虽然简单快捷,但是这里还有一点要注意的就是实例化,所创建的变量仅仅只是一个Reference而已,只是一个没有灵魂的肉体,即使调用出了信息,也不能使用。如何寻找灵魂呢,点到Level中选中ActorA,在Detail面板中会有一个Detault的选项下面就可以选择灵魂了,用吸管吸也好,下拉菜单选择也好,总之把灵魂选择还是那个就可以调用任何信息了。

    第二种:事件分配器

    最适用的情况:从Actor到Level中的信息传递。也可以类蓝图之间信息传递。

    通过Event Dispatcher绑定一个或多个事件,这些事件可以在类蓝图中调用,也可以在Level中调用。用的最多的就是Level了。

    最下面就是事件分发器了,如何用呢,在需要绑定的事件前添加分发器的Bind形式如下

     这是绑定事件的节点,之后跟需要被绑定的事件,下面的Call是调用被绑定的事件,这种信息传递的方式是用的比较多的,应用也很广,可以在关卡和类之间随意调用,类与类也是可以的。

     第三种:蓝图接口

    最适用情况:数个蓝图中存在相似的功能,但是在调用后执行不同的效果。

    这里也是最能体现C++面对对象编程的思路的信息传递的方法。举例子:玩家有一个喷火器,这个喷火器喷到树上,树着火了,喷到雪人上,雪人化了。。。。玩家按下R键,在门口就是开门,在兵器前面就能捡起兵器

    对于接口来说关键是函数的实现和调用。与C++中的多态性相同,原理就是利用C++中的多态。

    第四种:蓝图投射(蓝图中的转换)

    最适用情况:

    第一:访问特殊蓝图,像角色蓝图这种特殊蓝图的访问就可以用投射法,简单实用。

    第二:需要访问相同类的多个蓝图,以相同的方式修改。

    第三:访问一个特殊的子蓝图。

    利用Cast to以确认是否是需要的目标蓝图。

  • 相关阅读:
    进度条加载后显示页面
    解决跨域问题
    js下IE和FF的一些兼容写法总结
    linux
    linux 批量替换文件内容
    DVWA-1.9之fileupload
    python库安装失败的解决方法
    python程序打包
    CF 1133C Balanced Team
    CF 1133B Preparation for International Women's Day
  • 原文地址:https://www.cnblogs.com/wbx-Blog/p/6730745.html
Copyright © 2011-2022 走看看