• UE4 框架


      有很多人是从UE3 接触到Unreal,如果你也对UE3非常了解,便能很快的上手UE4。但是,UE4的开发模式还是有所不同的。

      

      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,胶囊,球,多边形
      • 在运动和物理模拟的时候都需要
    •   复杂碰撞
      •   实际用于多边形
      • 武器和反向动力

     

      

      

  • 相关阅读:
    设计模式-状态模式
    Nginx相关
    Docker基础使用
    JavaScript定时器及回调用法
    前端交互篇
    基于ConcurrentHashMap的本地缓存
    J.U.C体系进阶(五):juc-collections 集合框架
    J.U.C体系进阶(四):juc-sync 同步器框架
    J.U.C体系进阶(三)- juc-atomic 原子类框架
    .net core https 双向验证
  • 原文地址:https://www.cnblogs.com/NEOCSL/p/4059841.html
Copyright © 2020-2023  润新知