从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 / GLSL / 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 5)项目类型。
- 如果要使项目与受支持的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格式才能进行合并。
In UNIGINE, all native file formats are text-based by default, so you can use any VCS you are used to and merge worlds, nodes and other assets. You can extend the file system to keep the shared assets by using Mount Points. Also, a normal workflow is to split work of different team members using separate Node Layers, so there will be no need to match the conflicted files when merging the project modifications.
请查看相关文章以获取更多详细信息:
- 配置版本控制
摄影机#
渲染必需的实体相机在两个引擎中的处理方式略有不同。
在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 | Render -> Streaming -> Preload at World Loading |
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 |