UE4 架构初识(一)

这篇具有很好参考价值的文章主要介绍了UE4 架构初识(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UE引擎学习

一、基础框架

  1. UObject:

    ​ UE创世,万物皆UObject,接着有Actor。UObject提供的元数据、反射生成、GC垃圾回收、序列化、编辑器可见,Class Default Object等,UE可以构建一个Object运行的世界。
    UE4 架构初识(一)

  2. Actor:

    脱胎自Object的Actor也多了一些本事:Replication(网络复制),Spawn(生生死死),Tick(有了心跳)。
    Actor无疑是UE中最重要的角色之一,组织庞大,最常见的有StaticMeshActor, CameraActor和 PlayerStartActor等。Actor之间还可以互相“嵌套”,拥有相对的“父子”关系。
    UE4 架构初识(一)

  3. Component

    ActorComponent下面最重要的一个Component就非SceneComponent莫属了。SceneComponent提供了两大能力:一是Transform,二是SceneComponent的互相嵌套。

UE4 架构初识(一)

  1. Level

    Cocos2dx会认为游戏世界是由Scene组成的,Scene再由一个个Layer层叠表现,然后再有一个Director来导演整个游戏。Unity觉得世界也是由Scene组成的,然后一个Application来扮演上帝来LoadLevel,后来换成了SceneManager。 而UE中把这种拆分叫做关卡(Level),由一个或多个Level组成一个World。UE便给每一个Level也都默认配了一个书记官(Info),他一一记录着本Level的各种规则属性,在UE需要的时候便负责相告。Level直接相关的一位书记官:AWorldSettings。虽然名字叫做WorldSettings,但其实只是跟Level相关。

UE4 架构初识(一)

  1. World

    UE里每个World支持一个PersistentLevel和多个其他Leve。Persistent的意思是一开始就加载进World,Streaming是后续动态加载的意思。Levels里保存有所有的当前已经加载的Level,StreamingLevels保存整个World的Levels配置列表。PersistentLevel和CurrentLevel只是个快速引用。在编辑器里编辑的时候,CurrentLevel可以指向其他Level,但运行时CurrentLevel只能是指向PersistentLevel。
    UE4 架构初识(一)

  2. WorldContext

​ 首先World就不是只有一种类型,比如编辑器本身就也是一个World,里面显示的游戏场景也是一个World,这两个World互相协作构成了我们的编辑体验。然后点播放的时候,引擎又可以生成新的类型World来让我们测试。而UE用来管理和跟踪这些World的工具就是WorldContext:
UE4 架构初识(一)
7. #### GameInstance

GameInstance里会保存着当前的WorldConext和其他整个游戏的信息。
UE4 架构初识(一)

  1. Engine

UEngine分化出了两个子类:UGameEngine和UEditorEngine。众所周知,UE的编辑器也是UE用自己的引擎渲染出来的,采用的也是Slate那套UI框架。好处有很多,比如跨平台比较统一,UI框架可以复用一套控件库,Dogfood等等,所以本质上来说,UE的编辑器其实也是个游戏!UE会在不同模式下根据编译环境而采用不同的具体Engine类,而在基类UEngine里通过一个WorldList保存了所有的World。

  • Standalone Game:会使用UGameEngine来创建出唯一的一个GameWorld,因为也只有一个,所以为了方便起见,就直接保存了GameInstance指针。
  • 而对于编辑器来说,EditorWorld其实只是用来预览,所以并不拥有OwningGameInstance,而PlayWorld里的OwningGameInstance才是间接保存了GameInstance.

GEngine可以说是一切开始的地方了。翻看引擎源码,到处也可以看见从GEngine->出来的引用。
UE4 架构初识(一)

  1. GamePlayStatics

UE为了我们的使用方便,也在Engine层次为我们提供了便利操作蓝图函数库。
UE4 架构初识(一)

  1. 总结

GEngine仿佛就是一棵大树的根,当我们拎起它的时候,也会带出整个游戏世界的各个对象。但目前这些对象:Object->Actor+Component->Level->World->WorldContext->GameInstance->Engine,确实已经足够表达UE游戏世界的各个部分。

参考链接:https://www.zhihu.com/people/fjz13/posts?page=2文章来源地址https://www.toymoban.com/news/detail-426476.html

到了这里,关于UE4 架构初识(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4 地形编辑基础知识 学习笔记

    之前自己写过这样的功能,今天看到一个UE现成的 点击地形,选择样条 按住CTRL键+点击屏幕中某一个点会在场景内生成一个这样的图标 再点两次,会生成B样条的绿线条 点击+号再选择一个模型,会生成对应的链条状的mesh 拉高最远处的一个图标抬高 如果想地形贴合该mesh,则

    2024年02月11日
    浏览(56)
  • 【虚幻引擎】UE4/UE5 材质

      基础颜色(BaseColor) :材质本身的颜色,例如绿色蓝色等 金属度(Metallic) :金属度,材质是否含有金属光泽 粗糙度(Roughness) :粗糙或者平滑度,物体表面的粗糙程度 自发光(EmissiveColor) :物体本身是否发光 透明度(Opactity) :物体表面是否透明,适用于 半透明(Translucent)、

    2024年02月02日
    浏览(82)
  • 【虚幻引擎】UE4/UE5插件

    Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。 BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数,可以在蓝图中直接调用。 ContentOnly:创建一个只包含内容的空白文件 Editor Toolba

    2024年02月05日
    浏览(75)
  • 【UE4】物理引擎(蓝图)

    物理引擎通过为刚性物体赋予真实的物理属性的方式来计算 运动、旋转和碰撞反映。 游戏引擎中的物理引擎的主要目的是为了解决物体在空间的状态信息。 常规的物理引擎遵循物理定律,按照给定的算法,进行模拟物理运动。所以在没有多元因素影响的情况下,物理引擎的

    2023年04月11日
    浏览(64)
  • UE4/5样条线学习(一):基础的样条线使用

    目录 效果展示: 制作: 组件 逻辑 注:按住alt拉轴可以拉出多一个点 第一步我们创建一个蓝图,命名为BP_Sline: 之后我们开始找组件,输入bill,我们可以看见下面这些,我们要的是第一个,这个的目的是为了让你更好的看到样条线的根组件在哪: 然后将这个发到根组件替

    2024年02月15日
    浏览(69)
  • 【虚幻引擎】UE4优化植被

    在UE4中,我们在做大型的室外场景时,经常会遇到植物过多导致延迟的现象,有时候我们需要在UE4的场景中放置几千几万甚至更多的模型,这些模型具有相同的LOD,并且基础模型都使用同一模型资源。因为模型文件拖入UE4场景中会自动使用Static Mesh Actor来表示,当在程序中放

    2024年02月15日
    浏览(57)
  • 【虚幻引擎UE】UE4/UE5 新人科普向

    Unreal Engine是当前最为流行的游戏引擎之一,具有丰富的游戏开发功能和强大的游戏引擎渲染能力。 UE5官方文档:UE5官方文档非常详细,介绍了UE5的各个功能和应用,适合入门学习和深入探究。链接:https://docs.unrealengine.com/5.1/zh-CN/ UE5中文社区:该社区聚集了大量的UE5开发者,

    2024年02月09日
    浏览(79)
  • 【虚幻引擎】UE4/UE5 pak挂载

     找到:D:UEUE_4.27EngineBinariesWin64,  WindowS+R打开CMD命令 运行UnrealPak,运行结果如下      注意如果想要加载Pak内资源,那么这些资源必须是经过Cook的。如果打包的是未Cook的资源,那么即使Pak挂载成功,也不可能会成功加载Pak内资源。  Cook好之后,存储的路径在你的I:DBJ

    2024年02月10日
    浏览(75)
  • UE5 C++ UObject实例化

    一.创建UObject C++类  在MyObject中声明结构体FMyDataTableStruct 在MyPawn里面,先将头文件里包含 MyObject.h 在MyPawn中声明一个UMyObject类型的指针 TSubclassOf  是提供 UClass 类型安全性的模板类。例如您在创建一个投射物类,允许设计者指定伤害类型。您可只创建一个 UClass 类型的 UPROPER

    2024年02月21日
    浏览(48)
  • 【虚幻引擎】UE4 Spline(样条线)

           样条线Spline在UE中是一个很好用的工具,能够设置物体的跟随移动,也能够设置物体的批量复制,还能够设置一个特殊的模型形状比如圆管,还可以设置特殊的粒子特效,做地形设计等等,只要你想要实现的效果,spline都可以实现。官方也提供了很多的案例,可以参考

    2023年04月10日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包