UE4蓝图总结(入门)

发表于2016-03-04
评论0 3.7k浏览
  使用引擎版本:4.10.2
  这篇总结一下蓝图的基本使用,有的内容没有配图,所以需要自己去操作一下。

一、变量
  和代码中的变量是一样的,蓝图也有变量,共有私有的区分,可编辑不可编辑(常量),变量类型,变量与变量之间的类型转换,引用类型,静态的变量,容器。
1、定义新变量
  方法1:在左侧的变量列表上点击增加变量按钮
  方法2:在蓝图操作界面中,在某个变量的引脚处右键,在弹出的菜单中点击提升为变量。
2、变量类型
  可以选择的变量类型有:
  常用类型
  int
  float
  boolean
  string
  text
  字节(0-255)
  vector(xyz)
  rotator(旋转)
  transform(位移+旋转+缩放)
  结构体
  类
  枚举类型
  接口
3、普通类型转换
  如果2个变量之间可以进行转换,那么就直接把2种类型的变量引脚相接,中间会自动产生一个转换节点。
4、结构体变量类型的break和make
  在蓝图编辑器界面中。从一个变量类型的引脚拖出选择菜单,搜索break方法或make方法,通过这2个方法,可以对结构体变量内的基本类型或结构体类型,进行拆分或组合,从而达到类型转换的效果。
5、引用和类
  如果在世界中存在这个类的实例,并且想用这个实例,就用引用类型。
  如果在世界中不存在这个类的实例,就用类类型。
  当然简单可以这么理解,具体看实际需要。
6、枚举类型
  如果要使用自定义枚举类型,需要在内容编辑器中,提前建立一个枚举类型的文件,然后才能在蓝图类中选择到自定义类型。
7、变量的get和set
  对于基本类型和结构体类型的get和set用法上,可以简单的理解为,get就是获取变量的值,set就是设置变量的值。
  对于类类型或引用类型来说,可能就比较复杂了:
  get引用可以理解为得到一个实例化对象,get类类型可以理解为得到了这个类型的结构,如果在这个类本身的蓝图中使用类类型,则相当于用了代码中的this关键字。
  set引用相当于替换对象,set类类型,还没试过。set类类型里面的属性,比如一个任务的材质(材质也是一个类),需要先get类类型,然后get metarial,然后create dynamic metarial interface,set新变量,变量类型为材质类,用新的材质替换旧的材质,而不是直接修改材质。

二、容器
  在变量类型的旁边有个网格小按钮,点击开启后,这个就是对应类型的数组变量了。

三、流程控制
1、foreach和for
  这2个循环的在蓝图中是怎么体现的呢?入参引脚部分是数组变量,跳出条件,或循环开始/结束值。出参引脚部分是元素,元素index,循环体引脚,完成循环引脚。
  方法名:
  ForEachLoop
  ForEachLoopWithBreak
  ForLoop
  ForLoopWithBreak
  注意如果要用到break,可以在break引脚前加一个自定义事件,在循环体中调用自定义事件,这样逻辑比较清晰。当然了,也可以在循环体中直接一根白线连到break引脚。
2、while循环
  方法名是WhileLoop,当条件成立时循环,当条件不成立时跳出。
3、自定义流程控制
  用户可以自定义流程,比如在while循环的每次执行中添加一个延迟,并变成一个方法,但这种修改引擎内部流程控制的行为,是有风险的。
  操作步骤:
  在内容浏览器的右下角,勾选,显示引擎内容
  在引擎内容中,搜索,StandardMacros
  仿照while循环写一个自己的循环,注意添加分类
  保存后,在自己的蓝图中调用

四、接口和事件
  蓝图类可以继承其他蓝图类或C++写好的类,同样可以继承蓝图接口,而且是多继承哦,这就可以通过定义蓝图接口,规范子类方法的定义。
  事件就是一个用来触发的入口,比如单击事件,开始事件,时钟事件
1、蓝图接口
  步骤:
  在内容编辑器中,新建蓝图接口
  定义方法名,入参出参,所属目录类型
  在新建的蓝图类中,点击类设置,选择继承某个接口,
  在蓝图中实现接口中的类,这时,接口方法会变成事件的形式存在于新的蓝图类中
2、事件
  引擎中有很多已经写好的事件,直接用就行了。
  用户可以自定义事件,供别的蓝图类调用。
  添加自定义事件的操作步骤:
  右键呼出目录
  搜索custom
3、事件调度器
  通过事件调度器可以进行蓝图与蓝图之间的通信,它可以把一个事件的名字改变成另一个名字。在我测试的时候好像这个通信必须写在关卡蓝图中。
4、关于构建脚本
  这个脚本是默认被创建出来的。什么时候会执行里面的逻辑呢?在每次对象被改变的时候都执行一次,对象被改变包括,被生成,位移,缩放,被修改属性这种操作。
5、关于事件列表
  事件列表中描述了这个对象有哪些事件,常见的事件有beginPlay,tick,如果加上碰撞器组件,可以加个collisionBegin之类的事件,用于响应碰撞器触发。或者,响应玩家的输入,input什么的,按键啊,手柄啊,and so on。

五、结束语
  还有一些蓝图内容没提到,因为我也才刚学,好像还有个BluePrinttable,但现在不在我的学习列表内,慢慢来吧,后面再改。
  加入GAD的核心用户QQ群:484290331,各类活动奖励任你拿,最新资讯任你读,众多教学任你免费学,如此好地方赶紧加入吧!另VR专属群:476511561,专业VR技术分享,专业导师指导为你答疑解惑,大型小型活动奖励等你拿,免费学习赚奖励的天地,欢迎你加入哟!

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论