微信公众号:UE交流学习    UE4开发群:344602753

蓝图是Unreal Engine的特点,用C++编程固然好,但是效率要低很多,主要是国内资料比较少,所以不太容易学习,用蓝图编程可以节省开发成本,我认为蓝图编程也是可以解决问题的,他其实也是一个一个方法进行执行的,可能程序员用这个不太习惯,但是用多了还是挺方便的,对于不懂编程的人来说,思路非常清晰的情况下,最好是有一定的编程基础,这样最好!

题外话,有个Virtools可视化编程软件,用的也是类图,不能用C++直接编程,但是可以用C++编写模块,供调用,我个人认为它做的还是挺成功的!

首先我新建一个蓝图类,在资源视图中,右键新建就可以!                                                

点击Blueprint后弹出一个父类框,其中有Actor,Pawn,Character,PlayerController等,

在All Classes中还有一些不常用的类!在这里我继承了Actor类,Actor就是最基本的类,也就是每个类都必须有的变换类!类似Unity3d的Transform,每个类都必须有的组件!

在蓝图类中,首先有两个事件,是必须有的,Eevnt BeginPlay类似于类的初始化事件,

ActorBeginOverlap是触发器触发事件,就是当前物体碰到了其他物体的时候就会触发!

Event Tick是每帧都调用的事件!

首先像是每个程序都一样的,打印个HelloWorld!其中箭头表示流程,程序都是线性流程性的,靠一条线连接到底,不能用一个箭头连向两个地方!其中String就是参数,参数可以连接到多个地方的!

然后就可以在屏幕上打印出来Hello World!

UE在运行的时候默认不显示鼠标,我写个代码,让显示个鼠标!

首先是有个蓝图 SET Show Mouse Cursor这个属性,后面的框可以手动输入参数,来决定是否显示鼠标,但是如果Target不能为NULL,否则会编译不过,也就是说这个方法是属于某个类的方法,那么这个Target到底是什么类型呢?可以用鼠标放到Target上,会提示你的类型,那么我们就需要获取当前场景中的人物控制对象,可以用静态方法Get Player Controller来获取,然后赋予它就可以!

再说明下Tick事件,它是每一帧都要执行的,那么我们在游戏程序中有一个参数非常的重要,那就是上一帧运行的时间,我们需要乘以这个参数,来保证游戏的公平性!那么如何获取呢?可以通过Tick时间的delta来获取,也可以通过一个蓝图模块来获取!

通过BuildString方法,可以拼接两个字符串,Prefix是前缀,这里填写的是“Delta”,然后把Delat Senconds的值赋予进来,即可进行拼接的!然后打印出来!

我们可以在蓝图中添加一个Cube,但是必须勾选Overlap Event,这样

Event ActorBeginOverlap事件才会被触发,Collision Presets设置为

OverlapOnlyPawn,这样会接受角色的触发!

首先碰到了其他物体,那么我们首先进行试着转换,采用Cast To ThirdPersonCharacter类型,如果转换失败,则执行Cast Failed,转换成功则进行后续的流程,我采用Get Display Name可以打印出这个角色的名称,然后再删除方块自己,类似跑酷中的吃到金币!模块为DestroyActor删除自己!

Unreal Engine4 蓝图入门的更多相关文章

  1. Unreal Engine4 蓝图讲解

    UE4开发群:344602753 Unread Engine4的界面概况: UE4的效果可以说是比较好的,从整体架构上来说,和Unity3d的逻辑架构不太 一样,发现UE4不好上手,但是从理论上考虑, ...

  2. 【游戏周边】Unity,UDK,Unreal Engine4或者CryENGINE——我应该选择哪一个游戏引擎

    在digital-tutors看到的一篇文章,很多初学者都有这样的疑问,因此翻译到这里. 原文:http://blog.digitaltutors.com/unity-udk-cryengine-ga ...

  3. Unreal Engine4 学习笔记1 状态机 动画蓝图

    1.动画蓝图 包含 状态机 包含 混合空间BlendSpace,即状态机包含在动画蓝图的"动画图表中",而混合空间可用于在状态机中向某(没)一个状态输出最终POSE:    动画蓝 ...

  4. 【HAPPY FOREST】用Unreal Engine4绘制实时CG影像

    用Unreal Engine绘制实时CG影像 近年来,对实时CG的关心热度越来越高,但要想弥补与预渲染方式的差异并不是那么容易.这里就有影像业界的先锋进行挑战的MARZA ANIMATION PLAN ...

  5. Unreal Engine4 学习笔记2 动画蒙太奇

    动画蒙太奇出现的位置是在动画蓝图的动画图表和事件图表中,如下图 事件图表,可以看出在主线执行的结尾,如果is Punching 为true,则会执行一个我们自定义的Punch Event,用来播放动画 ...

  6. 【UE4】如何获取/下载虚幻4(Unreal Engine4)源码

    在官网中点击[获取虚幻引擎]可以看到,虚幻4完整源代码已经放在Github上,所以与其用百度搜别人的资源,当然是直接上Github下啊. 主要步骤如下: 注册一个Github帐号,这个没啥值得说的. ...

  7. Vive开发教程汇总

    最近在整理在HTC Vive平台上开发VR应用程序的教程,现在把结果全部汇总在下面的表格里,希望更多的开发者参与到VR内容的开发之中,真的很好玩.现在主流的开发VR应用的引擎是Unity3D和Unre ...

  8. 承接Unity外包 U3D外包 Unity3D外包 小型Unity项目外包用Unity还是UE4

    转自mobilehub公众号(ID: mobilehub),作者:屠敏 VR浪潮席卷而来,相对于资本的狂热,现实中真正需要的是有实力的VR硬件研发团队和专业内容制作队伍.对于入门级的开发者而言,游戏引 ...

  9. 淌水 UE4的shootergame 案例 准备

    从毕业到现在,从GIS到游戏. 先记录一下cesium源码研究停止了一个多月了,还是有点放不下,等有机会一定研究透彻.感谢一下法克鸡丝博主. 好,研究了近两个月的游戏整体制作,熟悉了maya\unfl ...

随机推荐

  1. iOS之Sqlite和FMDB

    在iOS 开发中,总会用到数据库的操作,来实现增.删.改.查. 尤其是查询. 一旦涉及到查询的操作,那就非得用数据库不可了.   SQLite (http://www.sqlite.org/docs. ...

  2. GCC安装

    1.apt-get install gcc2.apt-get install make3.apt-get install gdb apt-get install build-essential  这个 ...

  3. Mvc分页:为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集

    namespace Entity{ public interface IPagedList { /// <summary> /// 记录数 /// </summary> int ...

  4. 简单JavaSE数据类型入门

    新的一节学习了JavaSE,今天主要来说一下Java的数据类型及其输出,借用Xmind,可以生动形象的向大家来解释Java的数据类型: 其中数值整数型举例: public class A02{ pub ...

  5. 控制器的跳转-modal与push

    一.modal与pushmodal从下面往上盖住原来的控制器,一般上一个控制器和下一个控制器没有什么关联时用modal,比如联系人的加号跳转页面,任何控制器都可以用modal push一般是上下文有关 ...

  6. WebRTC 音视频开发之路

    早在2014年就通过WebRTC实现了PC客户端的实时视频语音,那时P2P连接的建立使用的WebRTC自带的libjingle库,使用peerconnection的API实现的.后来在做远程桌面,文件 ...

  7. IOS视图旋转可放大缩小

    - (IBAction)hideBut:(id)sender { if (self.flg) { [UIView animateWithDuration:0.3 animations:^{ self. ...

  8. spark - 将RDD保存到RMDB(MYSQL)数据库中

    SCALA连接数据库批量插入: scala> import java.sql.DriverManager scala> var url = "jdbc:mysql://local ...

  9. discuz注册 内部错误

    ucenter整合后,在论坛注册时出现 内部错误,无法显示,这是因为ucenter中,某个appid没写入! 可以把ucenter安装包下的utilities/checkappid.php,复制到uc ...

  10. 使用link在两个容器之间建立连接(mysql)

    在使用Docker的时候我们会常常碰到这么一种应用,就是我需要两个或多个容器,其中某些容器需要使用另外一些容器提供的服务.比如这么一种情况:我们需要一个容器来提供mysql的数据库服务,而另外两个容器 ...