从Unity迁移到UNIGINE
本节从Unity用户的角度简要概述了UNIGINE,并提供了基本信息,可帮助您将Unity的经验转移到UNIGINE。
概述#
快速词汇表#
本章在左侧匹配常用的Unity软件术语,在右侧匹配其UNIGINE等效项(或粗略等效项)。 UNIGINE关键字直接链接到相关文章,以为您提供更深入的信息。
Category | Unity software | UNIGINE |
---|---|---|
Project and SDK management | Hub | SDK Browser |
Editor UI | Hierarchy Panel | World Nodes Hierarchy window |
Inspector | Parameters window | |
Project Browser | Asset Browser window | |
Scene View | Editor Viewport | |
Scene | Scene | World |
Gameplay Types | Component | Component System |
GameObject | Node | |
Prefab | NodeReference | |
Meshes | Mesh Renderer | Static Mesh, Dynamic Mesh |
Skinned Mesh Renderer | Skinned Mesh | |
Blendshapes | Morph Targets | |
Effects | Particle System | Particle System |
Halo | Volumetric Objects | |
Lens Flares | Lens Flares | |
Billboard Renderer | Billboards | |
Projector / Decal Projector (HDRP) | Decals | |
Exteriors | Terrain | Terrain systems |
Trees / Grass | Mesh Clutter, Grass, Vegetation Add-On | |
Wind Zones | Animation Field | |
Game UI | UI | GUI |
Lighting | Light Sources | Light Sources |
Environment | Environment | |
Lightmapping | Voxel GI | |
Reflection Probes | Environment Probes | |
Rendering | Shader | Base Material |
Material | User Material | |
Custom Shaders: HLSL, Shader Graph | HLSL / UUSL | |
Compute Shaders | UUSL Compute Shaders | |
Rendering Paths | Rendering Sequence | |
Multi-Display Rendering | Multi-Monitor Rendering plugins, Syncker Plugin for Multi-Node Rendering | |
Programming | C# | C++ / C# |
Scriptable Render Pipeline (URP / HDRP) | Rendering Sequence if fully accessible from API / Scriptable Materials | |
Physics | Raycast | Intersections |
Rigid Body | Rigid Body | |
Collider | Shape | |
Joint | Joint | |
Cloth | Cloth Body | |
Animation | Timeline | Tracker |
Navigation and Pathfinding | NavMesh, NavMeshAgent, Off-Mesh Link, NavMesh Obstacle | Navigation Areas, Obstacles |
项目和SDK管理#
作为Unity软件用户,您习惯于使用Unity Hub,该应用程序可简化查找,下载和管理项目及安装方式的方式。
UNIGINE SDK浏览器 是开始使用UNIGINE Engine的第一步。该应用程序使您可以管理项目和已安装的SDK,并可以访问示例和知识库。
UNIGINE提供了几个编程工作流程,为轻松适应您在Unity软件中的脚本编写经验,建议使用 C#组件系统。使用SDK浏览器中的此工作流程创建项目的步骤如下:
- 单击My Projects部分中的Create New
- 在其他选项中,在API + IDE字段中选择C# (.NET)项目类型。
- 如果要使项目与受支持的VR头戴式耳机之一兼容,请继续至Plugins部分,在Stereo 3D部分中检查所需的插件,然后单击确定(更多关于 VR兼容性)。
- 单击Create New Project。
- 完成后,单击Open Editor以运行UnigineEditor。
编辑器界面#
在下面您可以看到Unity Editor和UnigineEditor的接口。图像中的界面元素采用颜色编码以指示常用功能。每个元素都有一个标签来显示UNIGINE的等效项。通过调整大小,拖放选项卡式窗口的大小,UnigineEditor的布局可以完全可自定义。 UnigineEditor采用深色方案。
要了解有关UnigineEditor界面的更多信息,请阅读本文。
场景检视#
您可能会发现Scene View和Editor Viewport控件看起来非常相似。
Unity Scene View
|
UNIGINE Editor Viewport
|
您可以使用:
- Camera panel可以在摄像机之间切换并配置当前摄像机。
- Rendering Debug显示渲染缓冲区的内容,与在Unity Editor中使用Draw Mode相同。
- Navigation panel可快速设置并在摄像机速度预设之间切换并更改摄像机位置。
Editor Viewport中的导航与Unity Scene View中的几乎相同。但是,请熟悉场景导航,以免丢失细节。
另外,顶部的工具栏提供了一组全局切换器:
您可以根据需要将许多编辑器视口用作。
游戏查看和播放模式#
您习惯于Unity编辑器在Game View内部具有Play模式,该模式是从场景中的摄像机渲染的,表示您的最终构建。
在UNIGINE中,Play按钮用于在单独的窗口中运行应用程序的实例。例如,您可以在Play预设之间切换以更改播放模式的基本参数,例如VR Mode以启用与受支持的VR耳机之一的兼容性。
默认情况下,在Play模式下单击时,鼠标光标将被抓住。有两种方法可以设置默认的输入绑定(键状态和鼠标行为):
安慰#
除Unity软件外,UNIGINE还具有用于标准输入,输出和错误记录的控制台。提供了一组控制台命令。
它在UnigineEditor和正在运行的应用程序中均可用。要在编辑器中打开控制台窗口,请转到Windows -> Console菜单:
按下grave accent (`)键可以调用内置控制台:
您可以使用它从代码中打印用户消息。
打包用于发布的最终版本#
您习惯于通过Unity编辑器来构建项目。在UNIGINE中,打包最终版本也通过UnigineEditor完成。
项目和文件#
目录和文件#
就像Unity项目一样,UNIGINE中的项目存储在其自己的文件夹中,项目设置存储在*.project文件中。项目文件夹中有多个子文件夹,其中存储了内容和源文件以及各种配置文件和二进制文件。最重要的是数据和来源子文件夹。
在UNIGINE中,每个项目都有一个data文件夹。类似于Unity项目的Assets文件夹,这是项目资源的存储位置。要将资源导入项目,只需将文件拖放到项目的data目录中,它们就会被自动导入并显示在资源浏览器中。当您使用外部程序对文件进行更改时,编辑器中的资源将自动更新。
支持的文件类型#
Unity软件支持多种文件格式,而UNIGINE支持最常用的和某些特定的:
资源类型 | 支持的格式 |
---|---|
几何 | .fbx, .obj, .3ds, .dae, .glb/.gltf, .stp/.step, .igs/.iges, .brep, .stl |
贴图 | .png, .jpeg, .tif, .tga, .rgba, .psd, .hdr, .dds, and more |
声音和视频 | .wav, .mp3, .oga/.ogg, .ogv |
字型 | .ttf |
从Unity软件中获取资源#
网格
如果将其用作FBX模型,则可以将在Unity软件中使用的资源导入UNIGINE。将 FBX模型导入UNIGINE时,请根据模型检查所需的导入选项。
UNIGINE使用与Unity软件相同的单位(米),因此您无需重新缩放网格。
材质
与Unity软件类似,UNIGINE可与 PBR材质一起使用,并支持 Metalness和Specular工作流程(类似于基于Standard和Standard (Specular Setup)着色器的Unity材质),盒式材质库可创建几乎所有材质。因此,可以使用mesh_base材质在UNIGINE中重新创建在Unity软件中为模型创建的材质,这是UNIGINE中用于基于物理的材质的基础材质。
纹理
可以将纹理作为模型的一部分或单独导入,然后将其应用于网格。要导入纹理,您可能需要事先进行一些调整。例如,UNIGINE中的Shading纹理将金属性,粗糙度,镜面和微纤维贴图存储在其对应的通道中,因此您需要使用第三方软件(例如GIMP或Photoshop)修改纹理,然后将其导入UNIGINE。
要导入Normal纹理,应反转G通道。这可以在使用Invert G Channel设置导入纹理(或什至以后)的同时完成。
动画
如果将Unity软件中使用的骨骼动画模型用作FBX模型,则可以将其导入UNIGINE。导入FBX模型时,启用导入动画选项,并使用其他选项对导入进行微调。
有关更多详细信息,请参见导入建议。
现场#
两个引擎中“场景”的概念是相同的。但是,Unity软件和UNIGINE使用不同的坐标系。
Unity software | UNIGINE |
---|---|
Unity软件使用左手坐标系,其中垂直方向通常由+Y轴表示。 一单位一米。 轴和方向:
正旋转角设置顺时针旋转。 档案格式:*.scene |
UNIGINE使用右手坐标系,其中垂直方向通常由+Z轴表示。 一单位一米。 轴和方向:
正旋转角设置逆时针旋转。 档案格式:*.world |
场景对象#
本节简要介绍了两个引擎中的基本场景对象,以及它们的基本异同。
Unity software | UNIGINE |
---|---|
层次结构窗口
GameObject是所有其他组件的容器。组件为GameObject添加功能。 每个GameObject默认都有Transform组件。 GameObjects可以组织成一个层次结构(父子关系)。 |
世界节点层次结构窗口
节点的基本功能由其类型决定。可以使用属性和组件系统添加其他功能。 每个节点都有一个转换矩阵,该矩阵对其在世界上的位置,旋转和比例进行编码。 节点可以组织成一个层次结构(父子关系)。 不论类型如何,添加到场景中的所有场景对象都称为节点。 |
预制件#
Unity软件中的工作流程基于预制件。通常,您是从 GameObjects 中组装具有某些组件和属性的复杂对象,然后从此类对象创建预制件。然后可以通过编辑器将预制件放置在您的世界中,或在运行时实例化。
UNIGINE的工作流程基于与预制件非常相似的节点引用。为了使复杂的对象在您的世界中成为实例化,您只需从节点构建所需的层次结构,为其分配材质和属性,然后将其另存为Node Reference。然后,您可以根据需要多次使用此node reference,并且与预制件一样,通过更改其任何实例来修改node reference。
要了解有关创建节点引用和管理它们的更多信息,请点击以下链接:
如何合作?#
Unity编辑器提供了智能合并工具,并支持自定义工具以解决合并团队合作结果时的冲突。场景和其他文件应使用YAML格式才能进行合并。
在UNIGINE中,所有的原生文件格式默认情况下都是基于文本的,所以您可以使用VCSIntegration插件来简化与版本控制系统(SVN, Git)以及任何您习惯的VCS的工作,并合并世界,节点和其他资源。您可以使用Mount Points扩展文件系统以保留共享资源。此外,正常的工作流程是使用单独的节点层来拆分不同团队成员的工作,因此在合并项目修改时不需要匹配冲突的文件。
查看以下文章了解更多详细信息:
- 配置版本控制
摄影机#
渲染必需的实体相机在两个引擎中的处理方式略有不同。
在Unity软件中, Camera 组件负责捕获视图并将其发送给渲染。场景中存在的所有启用的摄影机都在视口(游戏视图)中渲染,并且可能彼此重叠。要在摄像机之间切换,通常需要关闭一个摄像机并启用另一个摄像机。
在UNIGINE中, Camera 是与渲染相关的对象,由世界上的 Player 节点实现。为了简化通过输入设备(键盘,鼠标,操纵杆)控制的最常用摄像机的创建,提供了几种具有不同行为的播放器类型:
- _ Dummy是一个简单的相机包装器。您可以将其用于静态摄像机或通过自定义逻辑进行增强。
- _ Spectator是一款自由飞行的相机。
- Persecutor是具有目标并围绕指定距离运行的飞行相机。它是适用于第三人称相机的简单易用的解决方案。
- _ ^ Actor能够为物理互动提供风景。它具有坚固的物理体,近似于胶囊形状。对于类似于Unity Character Controller的第一人称角色,它是一种易于使用的简单解决方案。
一次只能将一个玩家渲染到视口中。要在UnigineEditor的Editor视口中切换相机,请使用Camera面板:
项目设定#
通常通过项目设置窗口(菜单:Edit > Project Settings)在Unity编辑器中进行总体项目设置调整。音频,图形,物理,质量级别和其他设置会影响整个项目。
在UNIGINE中,可以通过运行时部分的Windows -> Settings菜单使用“通用设置和首选项” 。为每个世界分别设置World设置。
着色器编译#
在Unity编辑器中,在编辑器设置(菜单:Edit > Project Settings > Editor > Shader Compilation)中打开和关闭Asynchronous Shader compilation。
在UNIGINE中,可通过工具栏和Settings窗口的Editor部分使用类似的编辑器功能Forced Shader Compilation。
预设值#
需要重新使用与不同任务相关的属性设置时,可以在Unity编辑器中使用“预设”,无论是组件设置,导入设置还是特别是项目设置。您可以将项目设置的某个部分的预设设置保存为.preset资源,并在以后的开发中重复使用。
预设是Unity软件中的仅编辑器功能。
在UNIGINE中,您可以保存和加载预设以进行常规的物理,声音和渲染设置。预设分别存储为资源,扩展名为*.physics,*.sound和*.render。使用Settings窗口的Load和Save .* asset按钮可使用相应设置部分的预设。
已保存的资源将显示在资源浏览器中。您可以通过双击所需的.render资源来加载渲染设置。
预设不是UNIGINE中的仅编辑器功能。您可以使用Physics,Sound和Render类管理相应设置的预设,例如,在运行时在质量级别之间切换。
图形#
在Unity编辑器中,以下部分主要收集图形质量的设置:
- Graphics部分包含图形的全局设置。 Tier Settings为渲染和着色器编译提供特定于平台的调整。将根据所使用的平台自动定义要应用的三个层级之一。
- Quality部分处理为每个平台定义的图形质量级别。
在UNIGINE中,可以在Settings窗口的Render部分中找到世界的渲染设置。您还可以使用Rendering菜单打开和关闭最常见的渲染功能:
UNIGINE中没有依赖平台的质量调整,您应该编写自己的逻辑来控制质量水平。为此,您可以使用渲染预设。
让我们考虑一下Unity软件中最常用的渲染设置及其在UNIGINE中对应的类似物:
Unity software | UNIGINE |
---|---|
HDR Mode | Render -> Buffers -> Color 16F |
Rendering Path | see below |
Shaders Preloading | shaders_preload console command |
Pixel Light Count | Forward Per-Object Limits |
Texture Quality | Render -> Textures -> Quality |
Anisotropic Textures | Render -> Textures -> Anisotropy |
Anti Aliasing | Render -> Antialiasing -> Supersampling |
Soft Particles | particles_base -> Soft Interaction |
Realtime Reflection Probes | Menu: Rendering -> Dynamic Reflections -> Enabled |
Texture Streaming | Render -> Streaming Settings |
Shadows | Render -> Shadows Settings |
Shadow Cascades | set per each World Light source |
VSync Count | Runtime -> Video settings |
渲染路径#
Unity软件提供了两种非传统的照明和着色工作流程:Deferred和Forward 渲染路径,用于定义着色保真度以及渲染消耗和所需的硬件。您可以在Graphics窗口中选择项目使用的渲染路径,并且可以为每个 Camera 覆盖该路径。
UNIGINE具有固定的 Rendering Sequence (固定序列),由完整的延迟渲染器与正向渲染技术的组合表示:
您可以通过跳过某些渲染阶段来减少计算量。观看有关使用Microprofile工具优化渲染的视频教程:
- 视频教程:艺术家的Microprofile
后期处理#
在Unity软件中,后处理效果的可用性取决于所使用的渲染管道。在UNIGINE中,类似的效果不是后期处理的一部分,而是集成到渲染序列中。因此,与其他渲染管线相比,Unity High Definition Render Pipeline (HDRP)更接近UNIGINE中的渲染工作流程。
在Unity软件中,Volume框架用于定义在局部(或全局)覆盖后处理参数和效果的体积。在UNIGINE中,您将必须编写自己的逻辑以在不同空间的设置之间进行平滑插值(如果出现此要求)。
本节列出了所有通用的Unity后处理技术,无论渲染管线如何,都可以在UNIGINE中实现。
后处理效果#
Unity software | UNIGINE |
---|---|
Anti-aliasing methods:
|
Anti-aliasing methods: |
Ambient Occlusion | Screen-Space Ambient Occlusion |
Auto Exposure | Camera Effects: |
White Balance | |
Tonemapping | |
Bloom | |
Color Grading:
|
|
Chromatic Aberration | Postprocess Materials:
|
Grain | |
Deferred Fog | Haze |
Depth of Field | Depth of Field |
Motion Blur | Motion Blur |
Screen Space Reflection | SSR |
Contact Shadows | Screen Space Shadows |
Micro Shadows | Cavity of SSAO |