UE版本是5.5.4,是现在(2025年7月28日)能下到的最新的稳定版UE。
学习过程中大量使用了AI,在这里先感谢DeepSeek和腾讯元宝。
知识点1 UE的物体和逻辑是不分家的!
对于游戏内的物体,UE和Unity的逻辑有着很大的差别。
每次提到UE就会有人说UE的蓝图类,C++/U++ 等,但当我们使用Unity时则是GameObject、Component等等,其实在这里涉及到一个非常重要的基本知识。
UE的物体和逻辑不是像Unity一样分开的,而是均打包到了Uclass中,也就是说,场景内看到的一个立方体事实上就对应一个立方体的Uclass实例。而在Unity中,你需要一个GameObject以及一个继承自MonoBehavior的Component。
知识点2 UClass的构造函数
在代码编译完成后就会执行一次他的构造函数,主要目的有以下几个
如果你的类表示了一个游戏物体,那么UE在调用完构造函数后会自动识别到这个类的一些属性。比如在编辑器里面渲染出你构造函数中指定的那个网格体。
当你把这个类拖入到关卡文件中去的时候,也会调用一次这个构造函数,目的是把这个构造函数中涉及的网格体及其他组件等创建到关卡中。
知识点3 UE是一个“侵入性”很强的系统
使用侵入性这个词感觉一点都不为过,UE不像Unity只提供基本的游戏框架,而是基于自身的游戏框架构建了一套完整的系统,可以理解为 Unity + Framework。举个例子:在Unity中我们使用ScriptableObject来保存一些数据,这些数据的操作则需要大量的人力手工填表,UE则是提供了DataAsset和DataTable来实现更为完整且方便使用的解决方案;Unity中我们需要导入QFramework之类的游戏框架来帮助我们构建游戏逻辑,虽然不使用这个框架也可以运行,但是没有框架终归是不方便,而UE则是直接提供了GamePlay框架,整个游戏运行的逻辑都要围绕GamePlay展开,这使得我们上手UE的路劲显著的长于Unity。
Unity: 把物体拖到场景中,挂载脚本,运行成功
UE: 把物体拖到场景中,找到世界设置,调整Player,配置操作运动等等,运行成功。
这个过程中,Unity要学的是 Unity编辑器,C#基本语法,Unity的部分API,而UE是 UE编辑器,UE蓝图,GamePlay框架,Player Actor Character …… 挂载Component。
可以很明显的体验到,使用UE开发需要全盘接受UE做好的东西,使用UE的内容,而不是像Unity一样自己搭建框架,所以也有人说,UE是一个高度封装的Unity。