Unity开发者转UE 新手必读

news2024/11/16 0:52:24

前言

本页面为熟悉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.coloradmin.cn/o/1869637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

评估大型语言模型生成文章的能力

1. AI解读 1.1. 总体概要 本文探讨了大型语言模型(LLMs)如GPT-4在生成特定领域(如计算机科学中的自然语言处理NLP)教育调查文章方面的能力和局限性。研究发现,尽管GPT-4能够根据特定指导生成高质量的调查文章&#x…

商城积分系统的设计方案(上)-- 需求分析

一、背景 用户在参与公司的促销活动,比如邀请用户下单支付,可以获得虚拟货币。它可以用于解锁学习课程。 商品在定价的时候,需支持虚拟货币,用户在购买该商品的时候,可使用虚拟货币进行支付。 在电商体系中&#xf…

logging 模块简单使用记录

文章目录 1、logging 基本架构2、Logger 日志记录器及基础配置2.1 基础配置函数logging.basicConfig() 3、Handler 日志处理器 、 Formatter 格式化器和 Filterer 日志过滤器3.1 logging 模块提供的 Handler:[官方网址](https://docs.python.org/2/howto/logging.ht…

拍照就用华为Pura 70系列,后置真实感人像轻松出片!

平时喜欢用手机记录生活的人是不是总有个烦恼,想要拍出媲美单反的完美人像,又怕照片失真,经过近期对手机摄影的探索,我发现了华为Pura70系列的真实感人像之美,它给予每个热爱生活的人直面镜头的自信,记录真…

基于AiService实现智能文章小助手

顾名思义,这个应用就是希望能利用大模型的能力来帮助我写文章,那这样一个应用该如何利用LangChain4j来实现呢?接下来我们来利用AiService进行实现。 AiService代理 首先,我们定义一个接口Writer,表示作家&#xff1a…

002 使用kibana操作ElasticSearch7.x

文章目录 4.使用kibana操作es4.1.文档操作1.put方式发送数据2.post方式发送数据3.查看索引文档 GET4.更新文档 POST5.删除文档&索引 DELETE6.批量添加数据_bulk 4.2.Query DLS(查询领域对象语言)1.url 检索数据语法2.查询所有数据3.查询全部数据并排序4.查询全部数据排序并…

面试-java异常体系

1.java异常体系 error类是指与jvm相关的问题。如系统崩溃,虚拟机错误,内存空间不足。 非runtime异常不处理,程序就没有办法执行。 一旦遇到异常抛出,后面的异常就不会进行。 (1)常见的error以及exception 2.java异常要点分析…

安全感爆棚,锁定六氟化硫SF6气体泄漏报警监测系统

一、概述 六氟化硫SF6气体已有百年历史,它是法国两位化学家Moissan和Lebeau于1900年合成的人造惰性气体, 1947年提供商用。当前SF6气体主要用于电力工业中。化学性质稳定。微溶于水、醇及醚,可溶于氢氧化钾。不与氢氧化钠、液氨、盐酸及水起…

【Knowledge Graph Context-Enhanced Diversified Recommendation(MSDM2024)】

Knowledge Graph Context-Enhanced Diversified Recommendation 摘要 推荐系统(RecSys)领域已被广泛研究,以通过利用用户的历史交互来提高准确性。 尽管如此,这种对准确性的持续追求常常导致多样性的减少,最终导致众所…

阿里Qwen-2成全球开源大模型排行榜第一,中国处于领导地位。

6月27日凌晨,全球著名开源平台huggingface(笑脸)的联合创始人兼首席执行官Clem在社交平台宣布,阿里最新开源的Qwen2-72B指令微调版本,成为开源模型排行榜第一名。 他表示,为了提供全新的开源大模型排行榜…

KubeCon 香港:移动云与云猿生联合议题《在没有专用 Operator 的情况下管理数据库集群》

KubeCon CloudNativeCon 开源峰会 AI_dev 中国大会将于 2024 年 8 月 21 日至 23 日在香港举行。来自全球的云原生技术专家与爱好者在这里相会,探讨云原生领域的技术创新与最佳实践。此外,本次 KubeCon CloudNativeCon 和开源峰会将与 AI_dev&#x…

使用ESP32开发一款chat机器人

目的:使用语音对话的方式实现和ai机器人对话,核心硬件如下 主板: ESP32S3 语音(拾音器-麦克风):INMP441全向麦克风模块 购买记录: https://oshwhub.com/shukkkk/esp32s3_tft_mp3

隧道管廊人员定位系统的应用与发展

随着城市建设的不断发展,地下管廊和隧道工程的规模和数量也在快速增长。隧道工程处于复杂、封闭的环境中,人员的安全管理成为一项重要任务。隧道管廊人员定位系统作为一种先进的技术手段,可以实时追踪人员位置,提供实时监控和安全…

clip系列改进Lseg、 group ViT、ViLD、Glip

Lseg 在clip后面加一个分割head,然后用分割数据集有监督训练。textencoder使用clip,frozen住。 group ViT 与Lseg不同,借鉴了clip做了真正的无监督学习。 具体的通过group block来做的。使用学习的N个group token(可以理解为聚类…

数字社交的领航者:解析Facebook的引领作用

在当今数字化社会中,社交网络已经成为了人们日常生活不可或缺的一部分。而在众多社交平台中,Facebook凭借其巨大的用户基础和创新的技术应用,被公认为数字社交领域的领航者之一。本文将深入解析Facebook在数字社交中的引领作用,探…

Eclipse代码编辑器自主配色

1. 打开 Eclipse 的设置 - Java - Editor - Syntax Coloring 2. 自定义各种类型的颜色,例如: 1. Interface 勾选,设置为紫色 2. Class 勾选,设置为淡蓝色 3. Abstract classes 勾选,有自己默认的颜色 …

Web渗透:文件包含漏洞(part.1)

"文件包含漏洞"(File Inclusion Vulnerability)是一种常见的Web应用程序漏洞,攻击者可以通过这个漏洞在目标系统上包含或执行任意文件。主要有两种类型的文件包含漏洞: 本地文件包含(Local File Inclusion, …

Django(根据Models中模型类反向生成数据库表)—— python篇

一、数据库的配置 1、 django默认支持 sqlite,mysql, oracle,postgresql数据库。 sqlite:django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 , 引擎名称:django.db.backends.sqlite3 mysql:引擎名称&#xff…

克服指标管理痛点,实现数据价值最大化

在当下的企业管理中,由于数据量的激增,管理方式逐渐从基于经验转向基于数据。在此过程中,我们能够通过数据探查业务情况、分析数据,从而获取更优的决策支持数据。这通常通过数据报表或分析平台来实现,对于临时性场景&a…

基于YOLOv10的车辆统计跟踪与车速计算应用

文章目录 1、前言2、安装运行环境3、下载v10s模型4、代码实现5、代码详读5.1、导入必要的库5.2、识别车辆5.3、读取视频文件5.4、创建视频写入器5.5、车速计算5.6、统计车辆5.7、应用跟踪5.8、视频处理 6、目标检测系列文章 1、前言 在智能交通系统(ITS&#xff09…