This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
UnigineEditor
界面概述
资产工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
Setting Up Properties
照明
Landscape Tool
Sandworm
使用编辑器工具执行特定任务
Extending Editor Functionality
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
创建内容
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

从Unity迁移到UNIGINE

本节从Unity用户的角度简要概述了UNIGINE,并提供了基本信息,可帮助您将Unity的经验转移到UNIGINE。

注意
请首先考虑硬件要求

快速词汇表#

本章在左侧匹配常用的Unity软件术语,在右侧匹配其UNIGINE等效项(或粗略等效项)。 UNIGINE关键字直接链接到相关文章,以为您提供更深入的信息。

CategoryUnity softwareUNIGINE
Project and SDK managementHubSDK Browser
Editor UIHierarchy PanelWorld Nodes Hierarchy window
InspectorParameters window
Project BrowserAsset Browser window
Scene ViewEditor Viewport
SceneSceneWorld
Gameplay TypesComponentComponent System
GameObjectNode
PrefabNodeReference
MeshesMesh RendererStatic Mesh, Dynamic Mesh
Skinned Mesh RendererSkinned Mesh
BlendshapesMorph Targets
EffectsParticle SystemParticle System
HaloVolumetric Objects
Lens FlaresLens Flares
Billboard RendererBillboards
Projector / Decal Projector (HDRP)Decals
ExteriorsTerrainTerrain systems
Trees / GrassMesh Clutter, Grass, Vegetation Add-On
Wind ZonesAnimation Field
Game UIUIGUI
LightingLight SourcesLight Sources
EnvironmentEnvironment
LightmappingVoxel GI
Reflection ProbesEnvironment Probes
RenderingShaderBase Material
MaterialUser Material
Custom Shaders: HLSL, Shader GraphHLSL / GLSL / UUSL
Compute ShadersUUSL Compute Shaders
Rendering PathsRendering Sequence
Multi-Display RenderingMulti-Monitor Rendering plugins, Syncker Plugin for Multi-Node Rendering
ProgrammingC#C++ / C#
Scriptable Render Pipeline (URP / HDRP)Rendering Sequence if fully accessible from API / Scriptable Materials
PhysicsRaycastIntersections
Rigid BodyRigid Body
ColliderShape
JointJoint
ClothCloth Body
AnimationTimelineTracker
Navigation and PathfindingNavMesh, NavMeshAgent, Off-Mesh Link, NavMesh ObstacleNavigation Areas, Obstacles

项目和SDK管理#

作为Unity软件用户,您习惯于使用Unity Hub,该应用程序可简化查找,下载和管理项目及安装方式的方式。

UNIGINE SDK浏览器 是开始使用UNIGINE Engine的第一步。该应用程序使您可以管理项目和已安装的SDK,并可以访问示例和知识库。

Unity Hub和UNIGINE SDK浏览器比较 (点击放大)

Unity Hub和UNIGINE SDK浏览器比较

UNIGINE提供了几个编程工作流程,为轻松适应您在Unity软件中的脚本编写经验,建议使用 C#组件系统。使用SDK浏览器中的此工作流程创建项目的步骤如下:

  1. 单击My Projects部分中的Create New
  2. 在其他选项中,在API + IDE字段中选择C# (.NET 5)项目类型。
  3. 如果要使项目与受支持的VR头戴式耳机之一兼容,请继续至Plugins部分,在Stereo 3D部分中检查所需的插件,然后单击确定(更多关于 VR兼容性)。
  4. 单击Create New Project
  5. 完成后,单击Open Editor以运行UnigineEditor。
注意
示例中的 C#API 部分展示了C#中的传统编程工作流程。对于使用 C#组件系统的示例,请看一下Demos -> C# Component Samples

编辑器界面#

在下面您可以看到Unity Editor和UnigineEditor的接口。图像中的界面元素采用颜色编码以指示常用功能。每个元素都有一个标签来显示UNIGINE的等效项。通过调整大小,拖放选项卡式窗口的大小,UnigineEditor的布局可以完全可自定义。 UnigineEditor采用深色方案。

Unity and UNIGINE Editor UI Comparison (click to enlarge)

Unity编辑器和UnigineEditor UI比较

要了解有关UnigineEditor界面的更多信息,请阅读本文

场景检视#

您可能会发现Scene ViewEditor 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模式下单击时,鼠标光标将被抓住。有两种方法可以设置默认的输入绑定(键状态和鼠标行为):

注意
对于使用C#.NET 5编程工作流程的项目,Engine Viewport(UNIGINE中用于调试和分析的Game View's副本)被认为过多(但是,其他工作流程仍可使用)。

安慰#

Unity软件外,UNIGINE还具有用于标准输入,输出和错误记录的控制台。提供了一组控制台命令

它在UnigineEditor和正在运行的应用程序中均可用。要在编辑器中打开控制台窗口,请转到Windows -> Console菜单:

按下grave accent (`)键可以调用内置控制台:

您可以使用它从代码中打印用户消息

打包用于发布的最终版本#

您习惯于通过Unity编辑器来构建项目。在UNIGINE中,打包最终版本也通过UnigineEditor完成。

项目和文件#

目录和文件#

就像Unity项目一样,UNIGINE中的项目存储在其自己的文件夹中,项目设置存储在*.project文件中。项目文件夹中有多个子文件夹,其中存储了内容和源文件以及各种配置文件和二进制文件。最重要的是数据来源子文件夹。

在UNIGINE中,每个项目都有一个data文件夹。类似于Unity项目的Assets文件夹,这是项目资产的存储位置。要将资产导入项目,只需将文件拖放到项目的data目录中,它们就会被自动导入并显示在资产浏览器中。当您使用外部程序对文件进行更改时,编辑器中的资产将自动更新。

计算机上项目根目录中的data文件夹的内容与Asset Browser窗口中的Project文件夹之间的关系

支持的文件类型#

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软件中获取资产#

注意
如果您导入包含.meta描述文件的资产组(例如,从Unity项目中),则由于不支持的文件格式,在控制台中可能会出现警告。导入完成后,UNIGINE项目文件夹中.meta文件中的所有内容将被UNIGINE本机资产元数据替换。源文件不会受到影响。

网格

如果将其用作FBX模型,则可以将在Unity软件中使用的资产导入UNIGINE。将 FBX模型导入UNIGINE时,请根据模型检查所需的导入选项

UNIGINE使用与Unity软件相同的单位(米),因此您无需重新缩放网格。

材料

Unity软件类似,UNIGINE可与 PBR材质一起使用,并支持 Metalness和Specular工作流程(类似于基于StandardStandard (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 softwareUNIGINE

Unity Coordinate System (left-handed)

Unity软件使用左手坐标系,其中垂直方向通常由+Y轴表示。

一单位一米。

轴和方向:

  • X -右(+),左(-)
  • Y -向上(+),向下(-)
  • Z -向前(+),向后(-)

正旋转角设置顺时针旋转。

档案格式:*.scene

UNIGINE Coordinate System (right-handed)

UNIGINE使用右手坐标系,其中垂直方向通常由+Z轴表示。

一单位一米。

轴和方向:

  • X -右(+),左(-)
  • Y -向前(+),向后(-)
  • Z -向上(+),向下(-)

正旋转角设置逆时针旋转。

档案格式:*.world

场景对象#

本节简要介绍了两个引擎中的基本场景对象,以及它们的基本异同。

Unity softwareUNIGINE

层次结构窗口


基本场景对象-GameObject

GameObject是所有其他组件的容器。组件为GameObject添加功能。

每个GameObject默认都有Transform组件。

GameObjects可以组织成一个层次结构(父子关系)。

世界节点层次结构窗口


Node是一种基本类型,从该基本类型可以继承所有类型的场景对象。其中一些可视化显示:对象贴图效果-它们都具有表面来表示其几何形状(网格),而其他(光源播放器等)不可见。

节点的基本功能由其类型决定。可以使用属性组件系统添加其他功能。

每个节点都有一个转换矩阵,该矩阵对其在世界上的位置,旋转和比例进行编码。

节点可以组织成一个层次结构(父子关系)。

注意
不论类型如何,添加到场景中的所有场景对象都称为节点。

预制件#

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面板:

通过检查播放器的 主播放器 标志,您可以设置默认播放器,该默认播放器将在以Play模式加载场景时呈现。

项目设定#

通常通过项目设置窗口(菜单: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窗口的LoadSave .* asset按钮可使用相应设置部分的预设。

已保存的资产将显示在资产浏览器中。您可以通过双击所需的.render资产来加载渲染设置。

注意
默认情况下,UNIGINE项目为存储在data/template_render_settings文件夹中的low, medium, high, ultravirtual reality质量预设提供设置。

预设不是UNIGINE中的仅编辑器功能。您可以使用PhysicsSoundRender类管理相应设置的预设,例如,在运行时在质量级别之间切换。

图形#

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软件提供了两种非传统的照明和着色工作流程:DeferredForward 渲染路径,用于定义着色保真度以及渲染消耗和所需的硬件。您可以在Graphics窗口中选择项目使用的渲染路径,并且可以为每个 Camera 覆盖该路径。

UNIGINE具有固定的 Rendering Sequence (固定序列),由完整的延迟渲染器与正向渲染技术的组合表示:

  • 所有不透明(非透明)几何图形均在延迟的过程中呈现。
  • 透明几何图形在正向传递中呈现。

您可以通过跳过某些渲染阶段来减少计算量。观看有关使用Microprofile工具优化渲染的视频教程:

后期处理#

Unity软件中,后处理效果的可用性取决于所使用的渲染管道。在UNIGINE中,类似的效果不是后期处理的一部分,而是集成到渲染序列中。因此,与其他渲染管线相比,Unity High Definition Render Pipeline (HDRP)更接近UNIGINE中的渲染工作流程。

Unity软件中,Volume框架用于定义在局部(或全局)覆盖后处理参数和效果的体积。在UNIGINE中,您将必须编写自己的逻辑以在不同空间的设置之间进行平滑插值(如果出现此要求)。

注意
UNIGINE提供了许多开箱即用的材质来创建图像后处理效果。 它们可以在全局和每个摄像机上应用。

本节列出了所有通用的Unity后处理技术,无论渲染管线如何,都可以在UNIGINE中实现。

后处理效果#
Unity software UNIGINE
Anti-aliasing methods:
  • FXAA
  • TAA
  • SMAA
  • MSAA
Anti-aliasing methods:
Ambient Occlusion Screen-Space Ambient Occlusion
Auto Exposure Camera Effects:
White Balance
Tonemapping
Bloom
Color Grading:
  • Tone
  • Lookup Texture
Chromatic Aberration Postprocess Materials:
  • post_color_correction
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

下一步是什么?#

从这里去哪里?

确保您不要错过本指南的子主题:

感谢您阅读指南!您可以继续以下各节以进一步学习:

最新更新: 2021-12-13
Build: ()