This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
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
创建内容
内容优化
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

CPP Samples

The CPP Samples demo showcases the use of engine features for various use cases via the C++ API.CPP Samples 演示通过 C++ API 展示了引擎功能在各种用例中的使用。

IntersectionsIntersections#

Intersections samples show different cases of intersection detection:Intersections 样本显示了不同的交叉点检测情况:

  • Simple Async Request sample demonstrates detection of intersections with all objects in the world using a combination of World::getIntersection() and Landscape::getIntersection() methods. A single ray from the mouse cursor position is used. A normal at the point of intersection is rendered and latency value is displayed.Simple Async Request 示例演示了使用 World::getIntersection()Landscape::getIntersection() 方法的组合检测与世界上所有对象的交叉点。使用来自鼠标光标位置的单条射线。渲染交点处的法线并显示延迟值。
  • Multiple Async Requests sample demonstrates detection of intersections with all objects in the world using a combination of World::getIntersection() and Landscape::getIntersection() methods. 900 rays from a moving emitter-objects are used. You can check out latency values (number of frames per each result).Multiple Async Requests 示例演示了使用 World::getIntersection()Landscape::getIntersection() 方法的组合检测与世界上所有对象的交叉点。使用来自移动发射器对象的 900 射线。您可以查看延迟值(每个结果的帧数)。

Landscape TerrainLandscape Terrain#

The Landscape Terrain sample set demonstrates various Landscape Terrain features and use cases:Landscape Terrain 样本集演示了各种 Landscape Terrain 功能和用例:

  • Combined Landscape Modification sample — combination of nondestructive (using multiple Landscape Layer Maps) and destructive (using Landscape::asyncTextureDraw) Landscape Terrain modification techniques.Combined Landscape Modification 样本 — 非破坏性(使用多个 Landscape Layer Maps)和破坏性(使用 Landscape::asyncTextureDrawLandscape Terrain 修改技术的组合。
  • Landscape Creation sample — dynamic creation of a Landscape Layer Map with albedo, height, and two mask textures using LandscapeMapFileCreator and LandscapeMapFileSettings.Landscape Creation 示例 — 使用 LandscapeMapFileCreatorLandscapeMapFileSettings 动态创建具有反照率、高度和两个遮罩纹理的 Landscape Layer Map
  • Details sample demonstrates how to add Details to a Landscape Terrain using ObjectLandscapeTerrain::getDetailMask() and ObjectLandscapeTerrain::addDetail() methods.Details 示例演示了如何使用 ObjectLandscapeTerrain::getDetailMask()ObjectLandscapeTerrain::addDetail() 方法将详细信息添加到 Landscape Terrain
  • Excavation sample demonstrates how to perform destructive Landscape Terrain modification at run time using the tractor grader. This modification is by changing the underlying textures of Landscape Layer Map.Excavation 示例演示了如何使用拖拉机平地机在运行时执行破坏性 Landscape Terrain 修改。这种修改是通过改变 Landscape Layer Map 的底层纹理来实现的。
  • Fetch sample shows how to get terrain information (height, albedo, masks) for an arbitrary point.Fetch 示例展示了如何获取任意点的地形信息(高度、反照率、遮罩)。
  • Landscape Mesh sample demonstrates the generation of a mesh (ObjectMeshDynamic) representing a certain region of the Landscape Terrain based on fetched Landscape data (LandscapeFetch).Landscape Mesh 示例演示了基于获取的地形数据 (LandscapeFetch) 生成表示 Landscape Terrain 的某个区域的网格 (ObjectMeshDynamic)。
  • Paint sample demonstrates destructive run-time Landscape Terrain modification by changing the underlying textures of the Landscape Layer Map using Landscape::asyncTextureDraw with the help of the custom base materials.Paint 示例通过在自定义基础材料的帮助下使用 Landscape::asyncTextureDraw 更改 Landscape Layer Map 的底层纹理来演示破坏性运行时 Landscape Terrain 修改。
  • Tracks sample demonstrates non-destructive runtime Landscape Terrain modification by spawning multiple Landscape Layer Maps under the objects to create tracks.Tracks 示例通过在对象下生成多个 Landscape Layer Maps 以创建轨道来演示非破坏性运行时 Landscape Terrain 修改。

TrackerTracker#

The Track Playback sample demonstrate how to use Tracker to animate objects (change their position, rotation, and scale) using tracks created in the Tracker tool. Tracks in code are referred to via names and IDs. The TrackPlayback component uses a C++ wrapper for Tracker functionality implemented in the Tracker component.Track Playback 示例演示了如何使用 Tracker 使用在 Tracker 工具中创建的轨迹为对象设置动画(更改它们的位置、旋转和缩放)。代码中的轨道通过名称和 ID 引用。 TrackPlayback 组件使用 C++ 包装器来实现在 Tracker 组件中实现的 Tracker 功能。

Water GlobalWater Global#

Water Global samples demonstrate how to control Global Water via API:Water Global 示例演示了如何通过 API 控制 Global Water

  • Buoyancy sample shows how to control the current state of Global Water via changing Beaufort levels (the Beaufort slider). It also demonstrates the use of fetching of the water level at a certain point for simplified simulation of buoyancy without engaging Physics.Buoyancy 示例显示了如何通过更改 Beaufort 级别(Beaufort 滑块)来控制 Global Water 的当前状态。它还演示了在不涉及物理的情况下使用在某个点获取水位来简化浮力模拟。
  • CustomWave sample shows how to control the wave spectrum of Global Water in Manual mode via API by changing the number of octaves, number of waves per octave, and various other parameters for random waves generation, such as wave length, amplitude, phase offset, and steepness (can be used, for example, to process Weather Control packets from IOS in a simulator application).CustomWave 示例展示了如何通过 API 控制手动模式下 Global Water 的波谱,方法是更改八度音阶数、每个八度音阶的波数以及用于随机波生成的各种其他参数,例如波长、幅度、相位偏移和陡度(例如,可用于在模拟器应用程序中处理来自 IOS 的 Weather Control 数据包)。
  • Boat sample demonstrates how to simulate ship wake foam via Orthographic Decals and Particle Systems, that are spawned behind the boat and project foam onto the water surface. You can control sea state via the Beaufort slider (from 0 - calm to 8 - huge waves).Boat 示例演示了如何通过 Orthographic DecalsParticle Systems 模拟船舶尾流泡沫,它们在船后产生并将泡沫投射到水面上。您可以通过 Beaufort 滑块控制海况(从0 - 平静到8 - 巨浪)。
  • Fetch Intersection sample demonstrates the influence of the Steepness Quality, Amplitude Threshold, and Precision parameters on the accuracy of fetch and intersection requests for the Global Water object at various Beaufort levels.Fetch Intersection 样本演示了 Steepness Quality, Amplitude ThresholdPrecision 参数对准确率的影响获取和交集对不同 Beaufort 级别的 Global Water 对象的请求。

访问演示项目源代码#

您可以学习和修改此演示的源代码来创建自己的项目。 要访问源代码,请执行以下操作:

  1. Demos部分中找到CPP Samples演示并点击Install(安装)(如果您尚未安装)。
  2. 安装成功后,demo会出现在Installed部分,您可以点击Copy as Project基于此创建项目 演示。
  3. 在打开的 Create New Project 窗口中,在相应字段中输入新项目的名称,然后单击Create New Project.
  4. 现在您可以点击Open Code IDE查看和修改默认IDE中的源代码,或者点击Open Editor打开项目 在 UnigineEditor中。
最新更新: 2022-10-10
Build: ()