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. MySQL命令行分号无法结束问题解决

    背景:输入一串查询语句,以分号结束,发现没有结束,再打回车,分号,还是不完.什么exit,quit,bye,都不顶用如果要ctrl+C吧,又得退出mysql,一切重来,很麻烦.后来终于发现,引起这种现 ...

  2. Python与Java异常类层级区别

  3. uml图的五种关系 标签: uml 2016-12-18 21:47 221人阅读 评论(25) 收藏

    统一建模语言 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所 ...

  4. 火狐自动填写表单autofill forms的用法和注意事项

    1.安装后,打开要表单页面,右键

  5. POJ-2502_Subway

    Subway Time Limit: 1000MS Memory Limit: 65536K Description You have just moved from a quiet Waterloo ...

  6. JSON解析的成长史——原来还可以这么简单

    本文系统介绍,JSON解析的成长史,未经允许,禁止转载. JSON是一种轻量级的数据格式,一般用于数据交互 Android交互数据主要有两种方式:Json和Xml,Xml格式的数据量要比Json格式略 ...

  7. LOJ6079「2017 山东一轮集训 Day7」养猫

    养ImmortalCO k可重区间问题 的增强版:有上下界! 直接都选择s[i],然后再把一些调整到e[i] 考虑通过最大流的“最大”,使得至少每k个有me个e, 通过最大流的“上界”,限制每k个最多 ...

  8. OpenStack组件系列☞Keystone搭建

    一:版本信息 官网:http://docs.openstack.org/newton/install-guide-rdo/keystone.html 二:部署keystone 官网文档:http:// ...

  9. 2016国产开源软件Top100(Q1)

    2016国产开源软件Top100(Q1) 随着互联网的发展.开放标准的普及和虚拟化技术的应用等诸多IT新领域的创新及拓展,开源技术凭借其开放性.低成本.稳定性.灵活性.安全性和技术创新性等特点迅速走向 ...

  10. SuperSocket通过证书文件启用 TLS/SSL

    你需要通过下面的步骤修改配置文件来使用你准备好的证书文件: 在server节点设置security属性: 在server节点下增加certificate子节点: 最后配置应该像这样: <serv ...