UE4 学习初步 1、项目相关、蓝图、UI

项目相关

项目文件里的内容(红色为非必须文件):

Config:配置文件,引擎被拆分成很多小部分,用这些小部分组合成一个自定义的虚幻四引擎;

Content:内容文件;

DerivedDataCache(DDC):共享缓存文件,快速启动;
Intermediate:FBuild共享编译,共享编译;

Plugins:插件;

Saved:子文件夹Logs里有输出日志;
XX.json:链接文件,拼接自定义的引擎和插件;
XX.uproject:项目文件,启动项目;

 

蓝图(图形化编程,习惯就好😔)

有点像matlab的simulink,有点像自动化控制的信号流图,有点像数电的硬件电路图,一个个模块的输入输出引脚。

访问变量:get\set方法(函数)

 

函数:需要返回值记得自己加return节点。

宏、函数、事件区别:宏——编译前替换字符串代码,C++尽量用inline函数代替,不清楚蓝图的macros是inline func还是macros。尽量用另外两个

function:单线程,从输入节点到return节点(可能没有)(左到右)执行类似写的代码从上到下执行。没有delay延时,可以设置局部变量,会等待返回值然后执行之后的节点

graphs(事件图表):可以多线程执行,无返回值。

construction scrip:构造脚本,理解成这个蓝图类的构造函数就行。(美术都把位置缩放旋转这些基础属性设置好了,构造函数里可能会初始化其他值

 

 

几个常用事件和函数:

理解为会触发构造函数、析构函数、在项目编译运行前生效触发构造函数?

Event Construct、Event Destruct、Event Pre Construct

 

Event Tick:每帧触发的事件

Set Timer by Event:设置定时器持续调用一个事件

 

 

两个蓝图类常用通信方法:

(直接)
1、Event Construct:创建该蓝图时获取目标蓝图并保存为类变量,Get All Actors of Class(Out Actors引脚输出为数组---get)
(该方法搜索消耗资源和时间,其结果构造时保存为数组,析构时销毁)

2、目标的details里打上tags标签,工作蓝图使用get all actors with tag,其结果保存数组

3、自定义转换cast to,两个类不能转换则工作流执行cast failed

 

4、蓝图接口,便于实现多态。

5、需要在123的情况下,将目标蓝图的事件和触发方的信号调度器绑定,类似QT的connect绑定信号和槽函数

 

基本流程控制:

switch on 类型:相当于自带break,不会执行两条输出语句。

if:branch 分支

select:选择 汇合

并发:sequence

循环:a)输出引脚Loop Body和Completed等同于  for(){循环体} 循环完毕  b)reverse 倒叙循环

while:while loop

for:for loop 输出引脚Index可以显示当前是第几个循环

for each loop: Element 输出当前数组元素的值

do once:做一次,输入引脚自带重置和第一次是否开启

do N:循环几次

Flip Flop:交替执行

Gate和MultiGate:门——参考电路,Open时,enter输入才有Exit输出;Close时,无输出;Toggle交换。

delay和Retriggerable:Duration输入单位秒,后者可以一直被触发(一直有输入信号,那么延迟时间一直为duration的值)

 

 

UI

导入:

1、打开关卡界面蓝图

2、event BeginPlay事件,链接 create BP UI Widget,再链接add to viewport;

3、在Create BP的输入class项点击浏览按钮,跳转到内容浏览器选择需要的UI,或者手打UI蓝图的名字。

按钮样式:

 右边details框,点击Appearance,style,normal,Image选择需要的图片。

 

posted on 2020-12-04 11:13  霍拉·cpp  阅读(689)  评论(0编辑  收藏  举报

导航