Unity开发者转UE 新手必读

embedded/2024/11/13 9:29:37/

前言

本页面为熟悉Unity的用户概述了 虚幻引擎(UE)。如果你具备一些Unity知识,而且想学习如何运用自己所学的知识在虚幻引擎中工作,下面各小节将帮助你入门。

下面的截图并排显示了Unity和虚幻编辑器。各个区域采用相同的颜色来表示相同的功能。每个区域上还添加了名称,以便你了解它们在虚幻引擎语境中的称呼。
在这里插入图片描述

术语简表

下表左侧是Unity中常见术语,右侧则是对应的(或近似的)虚幻引擎术语。虚幻引擎(Unreal Engine) 列中的每个术语都链接到专门的页面,你可以前往这些页面了解详情。

类别Unity虚幻引擎
Gameplay类型Component组件
GameObjectActor
TransformSceneComponent,RootComponent
MonoBehaviorActorComponent
Prefab蓝图
编辑器界面Hierarchy Panel世界大纲视图
Inspector细节面板
Project Browser内容浏览器
Scene View关卡视口
网格体Mesh静态网格体
Skinned Mesh骨骼网格体
材质Shader材质、材质编辑器
Material材质实例
特效Particle Effect特效、粒子、Niagara
游戏界面UIUMG(虚幻示意图形)
动画Animation骨骼网格体动画系统
Mecanim动画蓝图
SequencesSequencer
2DSprite EditorPaper2D
编程C#C++
Script、Bolt蓝图
物理RaycastLine Trace、Shape Trace
Rigidbody碰撞、物理
运行时平台iOS Player、Web Player支持的平台

项目和文件

和Unity项目一样,虚幻项目也保存在专门的目录结构中,并且有自己的项目文件,扩展名为 .uprojectfile 。你可以 双击 .uproject 文件,将游戏加载到虚幻编辑器中,或 右键点击 查看更多选项。

项目目录包含不同子目录,保存了游戏的资产内容和源代码,以及各种配置文件和二进制文件。其中最重要的就是 Content 文件夹和 Config 文件夹,前者保存项目的所有资产,后者保存项目的配置(.ini)文件。

我的资产应该放在哪里?

在虚幻引擎中,每个项目都有一个 Content 文件夹。这类似于Unity项目的 Assets 文件夹,是你保存游戏资产的地方。

如果你的虚幻引擎项目包含C++类,它们将位于项目在磁盘上的 Source 文件夹。

支持哪些文件格式?

虚幻引擎5支持一些最常见的文件类型:

资产类型支持的格式
3D.fbx、.obj
纹理.png、.jpeg、.bmp、.tga、.dds、.exr、.psd、.hdr
声音.wav
字体.ttf、.otf
视频.mov、.mp4、.wmv

场景文件?

在Unity中,你将GameObject放在场景中,然后将其保存为Scene场景资产文件。 虚幻引擎使用 Map地图文件(Map file) ,它类似于Unity中的场景。 Map文件保存了 关卡 的数据、关卡中对象、光照数据和某些关卡特定的设置信息。

项目设置?

从虚幻编辑器的主菜单,转至 编辑(Edit)> 项目设置(Project Settings) 。
Unity还有叫做"玩家设置(Player Settings)"的部分。在虚幻引擎中,我们叫 平台设置(Platform Settings) ,你可以在 项目设置(Project Settings) 窗口的 平台(Platforms) 分段下配置。

源文件在哪里?

在Unity中,你将C#源文件放在 Assets 文件夹中。在虚幻引擎中,你的源文件放在不同的位置,具体取决于你创建的虚幻项目的类型:

C++项目 在虚幻项目目录中有一个 Source 文件夹。Source 文件夹包含各种文件,包括C++源文件(.cpp)和头文件(.h),以及一些编译用的脚本(Build.cs、Target.cs)。

蓝图项目 没有 Source 文件夹。蓝图可以放在虚幻项目的 Content 文件夹中的任意位置。

如果你想将C++代码添加到蓝图项目,请从虚幻编辑器的主菜单转至 工具(Tools)> 新C++类(New C++ Class) 。

在 内容浏览器(Content Browser) 中双击C++源文件,可以在Visual Studio(Windows)或Xcode(macOS)中打开。

从GameObject到Actor

GameObject在哪里?
在Unity中,GameObject是可以放在世界中的"东西"。虚幻引擎中对应的概念是 Actor 。在虚幻编辑器中,你可以从 主工具栏(Main Toolbar) 中的 创建(Create) 菜单将新的空Actor拖入视口中,如下所示:

你虽然可以通过空Actor来制作游戏,但虚幻引擎还提供了各类特殊的Actor,并预置了它们的特性,例如 Pawn(用于可以由玩家或AI控制的Actor),或 角色(用于需要复杂移动和交互的可控制玩家角色)。就像空Actor那样,你可以将这些特殊类型的Actor放入视口中,然后添加或自定义其属性和组件。

虚幻引擎中的Actor与Unity中的GameObject稍有不同。在Unity中,GameObject是C#类,不能直接扩展。在虚幻引擎中,Actor是C++类,可以使用继承来扩展和自定义。下文会详细介绍继承的概念。

组件在哪里?

在Unity中,你使用组件向GameObject添加功能。在虚幻引擎中,你将组件添加到Actor。你在关卡中放入空Actor之后,将其选中,然后点击 细节(Details) 面板中的 添加组件(Add Component) 按钮,然后选择要添加的组件。

在下面的视频中,我们会创建一把火炬,首先放入一个空Actor,然后添加一个网格体组件作为基座,接着添加光源和粒子系统来创建火焰。

在Unity中,GameObject以列表形式保存组件。在虚幻引擎中,Actor以 层级(Hierarchy) 形式保存组件,而且组件之间相互绑定。你可以在以上示例中看到,光源和粒子与静态网格体相互绑定。这会带来一些重要的影响,本页面的 复合对象 小节会进行说明。

从Unity的Prefab到虚幻引擎的蓝图

在Unity中,你使用组件构建一组GameObject,然后从中创建预制件(prefab)。接着,你可以在世界中放入预制件的实例,或在运行时将其实例化。

虚幻引擎有相同类型的工作流程,但其基于蓝图类:

一.使用组件构建Actor。
1.在Actor的 细节(Details) 面板中,点击 蓝图(Blueprint)> 添加脚本(Add Script) ,向其添加蓝图
2.选择一个位置保存你的新蓝图类。
3.点击 创建蓝图(Create Blueprint)就可以了!
你可以从 内容浏览器(Content Browser) 访问新蓝图类。双击 可直接编辑,或将其拖入打开的关卡以放入游戏世界中。

Unity中的Script组件和MonoBehaviour去哪里了?

在Unity中,你通过将脚本组件放在GameObject上来添加C#脚本。你通过创建从MonoBehaviour继承的类来定义该组件的功能。

虚幻引擎的工作方式相同:你可以使用蓝图或C++创建全新的组件类,并将其添加到任意Actor。类似于将蓝图添加到Actor,你可以通过以下两种方式之一将组件添加到Actor:

1.从Actor的 细节(Details) 面板。
2.从 编辑Actor(Edit Actor) 窗口。

将新组件添加到Actor的步骤如下:

1.从Actor的 细节(Details) 面板或 编辑Actor(Edit Actor) 窗口,点击 添加组件(Add Component) 。

2.选择要添加到Actor的组件。你可以创建新组件,或从预定义组件列表中选择,例如光源、音频、粒子系统,等等。
将组件添加到Actor

在Unity中,创建新的MonoBehaviour时,你会收到一个骨架类文件,其中包含 Start() 函数和 Update() 函数。

在虚幻引擎中,新组件有类似的函数:

1.InitializeComponent(),其作用与Unity的 Start()` 函数相同。

2.TickComponent(),其作用与Unity的 Update()` 函数相同。

蓝图组件中,这些函数显示为可视化节点。

可编写脚本的Actor蓝图

你的新Actor蓝图类会有自己的蓝图可视化脚本。这样一来,你就可以将逻辑添加到整个对象,而不仅仅是单个组件。结合继承结构关系(稍后下文会解释),这会为你在设计游戏时提供很多灵活性。

除了支持可视化脚本的蓝图类之外,虚幻引擎还支持使用代码来实现C++类。下面并排比较了Unity和虚幻引擎代码,还给出了具有相同作用的虚幻引擎蓝图
在这里插入图片描述

变换组件Transform

在Unity中,每个GameObject都有一个Transform组件,用于指定该GameObject在世界中的位置、旋转和比例。

虚幻引擎也一样,Actor有 根组件(Root Component),可以作为场景组件的任意子类。场景组件(Scene Component) 指定了Actor在世界中的位置、旋转和比例,这些属性也应用于以该场景组件为父节点的所有组件。很多有用的组件都是场景组件的子类,因此让它们具有位置信息是非常有用的!

即使你放置一个空Actor,虚幻引擎也会为该Actor创建默认场景根(Default Scene Root),这是一个最简单的场景组件。如果你放入新的场景组件,它将替换默认场景根。

复合对象

在Unity中,你可以通过构建GameObject层级以及绑定它们的变换组件来创建复合对象。
在这里插入图片描述
在虚幻引擎中,你可以通过让组件按照层级关系相互嵌套,来创建复合游戏对象。
在这里插入图片描述
如图所示,你可以让场景组件互相附加来得到一个相互嵌套的层级关系,因为它们有变换,这类似于Unity中的变换绑定。Actor组件(所有组件的基类)只能直接绑定到Actor本身。


http://www.ppmy.cn/embedded/53959.html

相关文章

微信浏览器自动从http跳转到https的坑

只要访问过同地址的https地址,就只能一直https了,无法再用https访问了,只能全站加上https才行。

Token详解

一:Token是什么 token是具有访问权限的令牌,其本质是一串字符串。 如何创建token 用户在登录页面,输入账号和密码能够成功登录后;由后端签发并返回 token作用 用来判断用户当前的登录状态,根据当前用户登录状态给…

Apollo9.0 PNC源码学习之Planning模块(三)—— public_road_planner

前面文章: (1)Apollo9.0 PNC源码学习之Planning模块(一)—— 规划概览 (2)Apollo9.0 PNC源码学习之Planning模块(二)—— planning_component 1 planning_interface_base 规划接口基类: planning\planning_interface_base\planner_base\planner.h #pragma once#in…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合

红队内网攻防渗透 1. 内网横向移动1.1 横向移动-资源约束委派-利用域用户主机加入1.1.1 利用思路1.1.2 利用条件1.1.3 利用过程1.2 横向移动-资源约束委派-Acount Operators组1.2.1 利用思路:1.2.2 利用条件:1.2.3 利用过程:1.3 横向移动-资源约束委派-CVE结合HTLMRelay1.3.…

使用lua开发apisix自定义插件并发布

接到老大需求:需要对cookie进行操作,遂查询apisix的自带插件,发现有,但不满足,于是自己开发了一个插件并部署,把开发部署流程写在这里打个日志怕以后忘掉。 一、需求 插件很简单,就是在reques…

【机器学习】---无监督学习

引言 在机器学习的广阔领域中,无监督学习扮演着至关重要的角色。不同于有监督学习,无监督学习处理的是没有标签的数据集,即我们不知道每个数据点的正确答案或分类。然而,这并不意味着无监督学习无法为我们提供有价值的信息。相反…

中霖教育怎么样?注册会计师考试难吗?

中霖教育:注册会计师(CPA)考试的难度高吗? 对于不同背景的考生来说,注册会计师考试的挑战程度不同。那些有良好基础和充裕准备时间的考生,通过考试的可能性要超过那些从零开始且准备时间有限的人。 据最近…

PPT可以转换成Word吗?归纳了三种转换方式

PPT可以转换成Word吗?在当今快节奏的工作和学习环境中,不同格式文件之间的转换变得日益重要。PPT作为演示文稿制作的首选工具,广泛应用于会议演讲、教育培训等多个场景,而Word则是文档编辑与编排的基石。为了便于进一步编辑、分享…