版本:Unity 6 (6000.0)
语言:英语
地形碰撞器
地形碰撞器组件参考

地形碰撞器简介

地形碰撞器一个地形形状的碰撞器组件,用于处理与它所附着的地形对象具有相同形状的碰撞表面的碰撞。更多信息
术语表 中查看
匹配一个 地形场景中的地形。地形游戏对象会在您的场景中添加一个大的平面,您可以使用地形的检查器窗口来创建详细的地形。更多信息
术语表 中查看
的形状,以实现极其精确的地形 碰撞当物理引擎检测到两个游戏对象的碰撞器发生接触或重叠时,就会发生碰撞,前提是至少有一个碰撞器具有刚体组件并且处于运动状态。更多信息
术语表 中查看
模拟。地形 碰撞器一个用于处理对象物理碰撞的不可见形状。碰撞器不需要与对象的网格完全相同形状 - 大致的近似形状通常更有效率,在游戏中也无法区分。更多信息
术语表 中查看
是地形最准确的碰撞器类型。

A Terrain GameObject. Right: A Terrain collider, which matches the geometry of the Terrain GameObject exactly.
一个地形游戏对象。右:一个地形碰撞器,它完全匹配地形游戏对象的几何形状。
A Terrain collider, which matches the geometry of the Terrain GameObject exactly.
一个地形碰撞器,它完全匹配地形游戏对象的几何形状。

地形碰撞器的构造

原始碰撞器网格碰撞器一个自由形式的碰撞器组件,它接受一个网格引用来定义其碰撞表面的形状。更多信息
术语表 中查看
不同,地形碰撞器是基于高度图的。PhysX 从与对应地形的高度图数据生成的 高度图一个存储对象高度数据的灰度纹理。每个像素存储垂直于该像素所代表的面的高度差。
术语表 中查看
数据,而不是从预定义的形状或 网格Unity 的主要图形原语。网格构成 3D 世界的大部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。更多信息
术语表 中查看
生成地形碰撞器。

有关 PhysX 中基于高度图的碰撞器的详细信息,请参阅 Nvidia PhysX 文档 几何形状:高度场

地形碰撞器会构建其碰撞几何形状以匹配分配的 TerrainData 资产的高度图数据,包括其形状、位置和比例。这样做的好处是,您可以使碰撞器的形状与可见地形完全相同,从而创建更精确和逼真的碰撞。

地形树木和细节的碰撞器

地形有两种画笔类型,可以在地形中添加 预制件一种资产类型,允许您存储包含组件和属性的完整游戏对象。预制件充当模板,您可以在场景中从该模板创建新的对象实例。更多信息
术语表 中查看
树木细节。这些画笔可以帮助您快速添加树木、灌木丛、岩石以及其他地形细节。有关更详细的信息,请参阅地形文档,了解 画笔树木一个游戏对象和关联的组件,允许您将树木资产添加到场景中。您可以在树木检查器窗口中添加树木的分支级别和叶子。更多信息
术语表 中查看
草地和其他细节

当您创建一个预制件时,您会将想要添加到该预制件的任何碰撞器都添加到其中。当您使用树木画笔将该预制件应用于地形时,您需要使用地形碰撞器来启用或禁用这些碰撞器。在地形碰撞器上,使用启用树木碰撞器来切换树木预制件碰撞器。

A Terrain and four trees.
一个地形和四棵树。
The collision geometry of the Terrain. Note the rectangular colliders around the bottom of each tree trunk. These are present because the original tree model Prefab contains a Box collider.
地形的碰撞几何形状。请注意每棵树干底部周围的矩形碰撞器。这是因为原始的树木模型预制件包含一个箱体碰撞器。

地形碰撞器仅为使用树木画笔添加的预制件生成碰撞器。它不会为使用细节画笔添加的预制件生成碰撞器,因为细节画笔只渲染预制件的网格,而不是其碰撞器。如果您想要在地形 游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、相机、路点等。游戏对象的功用由附加到它的组件定义。更多信息
术语表 中查看
上添加碰撞器,请使用树木画笔添加它。

Unity 仅在运行时生成树木预制件碰撞器,因此它们仅在运行时的 物理调试 碰撞器几何形状视图中显示。

优化地形碰撞器

在几乎所有情况下,地形碰撞器都是地形最合适的碰撞器选择。地形碰撞器可以准确地表示地形的形状,从而实现地形与其他碰撞器之间精确的 碰撞检测Unity 执行的一个自动过程,用于确定具有刚体和碰撞器组件的移动游戏对象是否与任何其他碰撞器发生接触。更多信息
术语表 中查看
。地形碰撞器还需要最少的设置和配置时间,因为 Unity 在您创建地形时会自动生成它们。

如果您正在寻找提高性能的机会,只有在地形具有较大的平坦区域,或者物理碰撞不需要非常精确的情况下,才能尝试使用替代的地形碰撞方法。以下部分介绍两种替代方法。

使用较低分辨率的地形碰撞器

您可以创建分辨率较低的地形数据,并将其应用于地形碰撞器。

复制地形现有的地形数据,并降低分辨率。将地形碰撞器的地形数据字段设置为降低分辨率的地形数据。

请注意,Unity 会在地形 检查器一个 Unity 窗口,用于显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
术语表 中查看
上显示一个警告,指出碰撞器和地形具有不同的地形数据,但只要您有意这样做,就可以忽略此警告。

从地形创建网格碰撞器

您可以导出地形的 高度图一个存储对象高度数据的灰度纹理。每个像素存储垂直于该像素所代表的面的高度差。
术语表 中查看
并使用外部软件将其转换为简化的 网格碰撞器

安装 地形工具 包。使用 导出高度图 工具导出地形高度图。使用 3D 建模软件从高度图创建网格。使用 3D 建模软件对网格运行网格简化例程。将网格重新导入 Unity,用作网格碰撞器的源。

地形碰撞器
地形碰撞器组件参考