本章从一个unity用户的视角来了解UE4,并讲解如何将unity的开发经验应用到UE4的世界中。

1.1项目文件和文件

        1.编辑器

         unity和UE引擎对应数字区域是相同的,1是视图编辑区,unity有scene和game两个视图,UE只有一个,所以UE中没办法在运行时像unity那样在scene中用箭头图标来移动物体。2就是在场景中的物体,3就是资源存放目录,unity资源在Assets目录下,UE资源在Content目录下

 4就是物体的属性面板,5是UE的系统自带物体,就跟unity中系统自带的Sphere\Cube之类的物体一样的。

2.资源素材

        可以通过双击一个.uproject文件来打开UE编辑器并加载该项目,如上图中有蓝色图标的SC_YJFX文件。项目目录中包含不同的子目录,保存了游戏的资源内容和源代码,以及各种配置文件和二进制文件。最重要的就是Content子目录和Source子目录。

        想要向游戏中导入素材,可以在Content目录下新建子目录,如Map、Model、Texture等,然后将素材文件复制到Content中对应的子目录中,或者直接拖动到子目录下。

3.支持的资源文件格式 

 4.如何修改项目的设置

        所有的项目设置都可以在主菜单的Edit->Project Setting中找到。能够对项目设定所需要的信息(比如项目的名称和图标),配置游戏输入的绑定,并定义运行项目时引擎的行为。可以在这里了解更多单独项目的设置,如"平台设置"。

5.源文件在哪

        在unity中,开发人员习惯于将C#的源文件放在资源目录Assets中。

        UE4工作机制有点不同。对那些拥有C++代码的项目,可以在项目目录中找到一个Source的子目录包含多种文件,包括C++源文件(.cpp)和头文件(.h),以及编辑链接的脚ben (Build.cs, Target.cs)。而只有蓝图的项目则不会有Source目录。

        在UE4中使用C++最方便的做法是使用编辑器的菜单项AddCodeToProject(在主菜单的File菜单中)或应用某个模板来新建一个C++项目。可以在内容浏览器中直接看到C++类项目,通过双击他们便能直接在Visual Stidio或XCode中打开该文件。

1.2 从GameObjects到Actors

        unity中的GameObject对应UE4中的Actor。在UE4编辑器中,可以从物体面板中直接拖一个空的Actor放置到场景中。UE4提供了各种特殊类型的Actor并预定了它们的特性,比如Pawn(用于作为玩家或AI的角色),或者Character(用于会做动作的生物)。和空的Actor一样,可以直接将它们拖动到场景中,并给它们添加组件,自定义属性。

         UE4中的Actor和Unity中的GameObject有不同之处。在unity中,GameObject是C#的类并且无法直接扩展。在UE4中,Actor是C++类,可以很容易地被继承或扩展来自定义。在细节面板中点击添加组件按钮,就可以给物体添加各种组件。1是添加组件,2是添加蓝图脚本。

        

1.3 从unity的Prefab到UE4的蓝图类

        unity的工作流程是基于预设(prefab)的,UE4则是基于蓝图类来协同工作的。大致可以理解为预设(prefab)等于蓝图(Blueprint)。

        脚本组件和MonoBehaviour在哪里?

        在unity中,物体有脚本组件,并可以添加C#脚本,可以创建MonoBehaviour子类并定义那个组件做什么,即自定义脚本。UE4中也可以自由创建全新的组件类并将它应用于任意Actor。组件类可以使用蓝图脚本创建,也可以使用C++创建。

        在UE4中,也会有一个框架类,有一个InitializeComponent()函数和一个TickComponent()函数,它们和unity中的Start、Update具有类似的行为。如果创建一个蓝图脚本组件,则会有可视化节点来表示类似的函数,如下图:EventBeginPlay在脚本开始时执行一次,EventTick则每帧执行一次。

         

 1.4 蓝图类的扩展性

        在UE4中可以通过扩展已有的蓝图类来创建新的蓝图类,并定义新的属性、组件功能及可视化脚本功能。

        

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐