有不少人是从UE3 接触到Unreal,若是你也对UE3很是了解,便能很快的上手UE4。可是,UE4的开发模式仍是有所不一样的。java
1.谈谈过往,UE1和UE2。程序员
我知道在那个时候我们同样挥霍美好的童年在玩游戏而不是作游戏,固然作游戏更挥霍你的青春XD编程
UE1和UE2是为FPS设计的,使用UnrealScript来进行编程。说实话UnrealScript是最好的学习面向对象编程的语言。服务器
2.UE3网络
添加了kismet。更多的模块类。可是仍旧以FPS为核心设计的编辑器
3.UE4函数
UnrealScript被下岗了,恭喜你我们下岗了~。变成了Blueprint,这时候关卡设计师们大声叫好:”再也不须要求着愚蠢的程序员帮咱们实现系统了,哈哈“。工具
游戏类型随意,Paper2D让你轻松制做2维游戏。学习
还有许多工程实例供你学习。测试
好了我们向前看~
5.UnrealScript vs.C++ vs.Blueprint
这是许多人的疑问,看好戏吧
6.UnrealScript
①面向对象编程,和C,C++,Java比较像。可是仍是有区别的
②虚拟机编译,这和java同样,方便移植,缺点是速度慢效率低
③添加了许多有用的特性,State(说实话状态写AI简直是最完美的方案,个人游戏AI即是强依赖State).Timers(很是方便延迟执行),Delegates(容易引发崩溃,注意使用哦)
7.Blueprint
①对艺术家和设计师来讲就是逃离恶心程序员”这不可能实现“的最有力武器,你能够作到”你行你上啊~“。Kismet的伙计应该很容易上手
②仍是虚拟机,和UnrealScript是同样的。所以,若是你很重视一个环节的执行效率,那么就是用C++
③和UnrealScript同样,但一些方面比UnrealScript强。例如你在添加Component中时能够不用关闭编辑器直接修改模型。实在是工农大解放啊...
8.C++
①UE编程始终能够基于C++,除非你用UDK,你这个穷鬼XD
②紧密结合虚拟机,由于Blueprint变量和方法有时是须要和C++交互的
③为了替换UnrealScript为开发者已经大幅提高了?
9.UE4基础元素
①Actor
咱们又见面了Actor,Actor是在一个关卡中持续存在的,一般他包含几个Actor组件。支持网络复制和多人游戏。
- Actor不包含位置,方向。这些东西在Root Component中存储。对于UE3 中的Pawn也由PlayerCharacter继承了,由于他有MovementComponent包含跳跃,速度等属性
- 由SpawnActor() 生成
- 必须由Destroy来销毁
- 在游戏中不能被垃圾回收
②什么是ActorComponent?
- 能被复用的功能能够添加进入Actor
- 包含一些最有趣的函数和事件
- 能被Blueprint访问~
③组件例子
- Scene Component 添加形状和链接
- Primitive Component 添加碰撞和渲染
- UAudioComponent,UArrowComponent,UInputComponent,ULightComponent,UMeshComponent,UParticleSystemComponent等等...
- 写过UnrealScript会对组件深有体会
④PrimitiveComponent组件事件举例
- Hit- 再碰到强的时候调用
- Begin/EndOverlap -进出一个Trigger
- Begin/EndCursorOver 没用过
- Clicked/Released 不解释
- InputTouchBegin/End
- Begin/EndTouchOver
10.你就只认得个Pawn
- Pawn就是你的阿凡达
- 这个傀儡被Controller操纵着
- 一般处理运动和输入控制
- 实现HP的好位置
- 一般没有运动或是输入反馈的代码,你能够在Controller中写
11.来见见老朋友Controller
- 控制Pawn的傀儡师
- 能够理解作就是玩家
- AIController就是控制AI的
- 一次只能Possess一个Pawn
- 当Pawn死的时候能够继续存在,在个人游戏中让pawn死亡,游戏假重置,就是controller直接Possess一个新Pawn的
- PlayerControlelr
- 玩家阿凡达的接口
- 处理点击,手柄,键盘
- 显示和隐藏鼠标指针
- 不须要Pawn表示的好地方
- 菜单,语音聊天...
一些别的有用选项
12.Character
这是使用过UE3的人学习UE4最困惑的地方,有了Pawn为何还要扩展PlayerCharacter?
- 这是一种能走的Pawn,由于包含了MovementComponent
- 和上边同样,添加了一些有用的组件
- 处理碰撞
- 处理客户端角色运动
- 比UE3有更大的升级
13.HUD
- 还有一些绘制API
- 没有构建HUD的工具
- UMG直接提供全部的东西,我讨厌老旧UI系统。UMG让人解放了
14.GameMode
- 还记得GameInfo吗,实现游戏规则用的
- 配置Pawn,Controller和HUD是谁
- 能在任何地方被访问,我来告诉你API GetGameMode()
- 只在服务器和单机实例中存在
- GameState是被用来在客户端复制状态用的
- 默认游戏类型能够在Project Settings中被设置
- 每一个地图都有本身的GameMode,须要你亲手设置
15.Input
- 这是我对UE4最赞扬的改进之一,你直接在编辑器中添加Bind而不是让你眼花的配置文件中
- 在Project Settings中设置去吧
- 获取指令
- PlayerController
- Level Blueprint
- Possessed Pawn
16.碰撞
- 有多种碰撞处理的方法
- 线性检测 Line Trace
- 体积扫过 Geometry Sweeps
- 重叠测试 Overlap tests
- 简单的碰撞
- Box,胶囊,球,多边形
- 在运动和物理模拟的时候都须要
- 复杂碰撞