1、Unreal 引擎提供了两种创建新 Gameplay 元素的方法:C++ 和 蓝图视觉脚本。

  通过 C++,程序员构建基础游戏系统;设计师可以基于此系统为场景 / 游戏创建自定义的游戏玩法。

  这种情况下,C++ 程序员在他们喜欢的 IDE(通常是 Microsoft Visual Studio 或 Apple Xcode)中工作,设计师则在 Unreal 编辑器的蓝图编辑器中工作。

2、Gameplay API 和 框架类 在这两个系统中都是可用的。它们可以单独使用,但只有当它们结合使用时,才能发挥其真正的力量。

  这到底意味着什么呢? 这意味着,当程序员用 C++ 中创建游戏基础构建块,而设计师利用这些块创造有趣的游戏时,引擎的工作效率最高。

3、C++ 程序员为设计师创建构建块的典型工作流

  打开 Unreal 编辑器 —> 类向导添加新的 C++ 类 —> 编辑 C++ 类代码文件实现目标功能 —>

  通过宏 UPROPERTY() / UFUNCTION()  将 属性 / 函数 公开给编辑器 —> 类向导添加蓝图类继承该 C++ 类。

  注1:详细流程见官方文档 https://docs.unrealengine.com/en-US/Programming/Introduction/index.html

  注2:UFUNCTION() 宏还可用于将事件(以回调函数的形式)通知给蓝图,从而可以从 C++ 代码调用蓝图中实现的函数;

  注3:引擎的大部分功能都通过 UFUNCTION() 宏以函数的形式公开给了蓝图,因此用户可以用蓝图直接构建游戏,而不必编写C++代码;

     但是,最佳方法是使用 C++ 构建基本游戏系统和性能关键代码,并在此基础上用蓝图创建自定义的游戏玩法。

UE4 中的 C++ 与 蓝图交互的更多相关文章

  1. UE4中UMG与C++交互 页面文本修改

    在UE4中,有两种方式创建ui,一种是使用slate的方式,一种是UMG,UMG是slate的封装,是一个可视化的ui编辑器.slate则是纯c++方式(之前实验过一次slate创建页面,代码相当麻烦 ...

  2. UE4 中Struct Emum 类型的定义方式 笔记

    UE4 基础,但是不经常用总是忘记,做个笔记加深记忆: 图方便就随便贴一个项目中的STRUCT和 Enum 的.h 文件 Note:虽然USTRUCT可以定义函数,但是不能加UFUNCTION 标签喔 ...

  3. UE4中使用数据表(Data Table)

    本文依据官方文档数据驱动游戏性元素整理而来. 做过游戏的应该都清楚,如果游戏稍微有点规模,那么使用数据驱动来做游戏一般是必不可少的一步,一般也就是策划通过本表的方式来解决.下面我们来简单说一下UE4中 ...

  4. 充分利用 UE4 中的噪声

    转自:https://www.unrealengine.com/zh-CN/blog/getting-the-most-out-of-noise-in-ue4 UE4 推出基于材质的程序式噪声已经有一 ...

  5. 3D游戏开发之在UE4中创建非玩家角色(NPC)

    接着上节我们继续学习,现在我们来创建一些NPC(non-playable characters,非玩家角色).在这个游戏中,当我们靠近NPC时,它们会做出相应的反应. 一 创建C++类 1) 在UE编 ...

  6. UE4中Bebavior Tree中Delay及其后面代码失效的原因

    具体原因是因为节点的执行过程中,该节点及其父节点的Decorator条件不满足,而节点又受到flow control的影响,导致中途强制结束了Task节点的执行,具体如下. UE4中的Behavior ...

  7. UE4中Timeline的使用

    UE4中经常需要一些和时间相联系的功能,例如在一段时间内完成一个动作,播放一段动画,或者只是单纯的延迟函数的执行时间,即调整事件的执行顺序.在UE4的蓝图自带函数中有一个很好用的函数可以完美地解决这些 ...

  8. UE4中动画蒙太奇的合成

    在游戏中的技能施法动作是可以通过软件合成的,笔者在这里介绍一种用UE4合成多个动画的操作. 在UE4中角色的动作可以由多种方式达成,一种是混合空间,例如角色的跑动和跳跃,其中的动作是由状态机控制的,原 ...

  9. UE4中资源加载资源的方式

    在UNITY中,我们加载资源一般是通过Resources.Load(path).即可完成.该方法返回的是Object类型.如果你想要的是材质或者贴图等等,只要价格类型转换的关键字就可以了例如 as M ...

随机推荐

  1. python 异常层级

  2. github.com访问慢解决

    修改hosts(HOSTS文件路径:C:\Windows\System32\drivers\etc\hosts) 1.打开Dns查询 - 站长工具  http://tool.chinaz.com/dn ...

  3. CVE-2019-0708漏洞利用

    20190514,微软发布补丁,修复了一个严重的RDP远程代码执行漏洞.该漏洞无需身份认证和用户交互,可能形成蠕虫爆发,影响堪比wannycry. 影响范围: Windows 7 Windows Se ...

  4. ajax封装最后形态

    function obj1(obj) { obj.t = new Date().getTime(); var res = []; for (var key in obj) //url中不能出现中文 r ...

  5. Spring Data JPA 查询结果返回至自定义实体

    本人在实际工作中使用Spring Data Jpa框架时,一般查询结果只返回对应的Entity实体.但有时根据实际业务,需要进行一些较复杂的查询,比较棘手.虽然在框架上我们可以使用@Query注解执行 ...

  6. css属性overflow:hidden在IE6、7下失效解决方案

    当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效.我们在IE 6 7内发现子元素会超出父元素设定的高度,即使父元 ...

  7. 2019-8-31-PowerShell-通过-WMI-获取系统信息

    title author date CreateTime categories PowerShell 通过 WMI 获取系统信息 lindexi 2019-08-31 16:55:58 +0800 2 ...

  8. WPF 之 DataTemplate 实例(摘抄)

     

  9. 关于DOM的一些基础问题

    什么是 DOM? DOM 是一项 W3C (World Wide Web Consortium) 标准,全称是文档对象模型(Document Object Model). DOM 定义了访问文档的标准 ...

  10. [C++] 自动关闭右下角弹窗

    最近腾讯.迅雷等各种客户端,都越发喜欢在屏幕的右下角弹框了. 有骨气的人当然可以把这些软件卸载了事,但是这些客户端在某些情况下却又还是有用的.怎么办呢? 作为码农,自己实现一个自动关闭右下角弹窗的程序 ...