版本:Unity 6 (6000.0)
语言:英语
网格碰撞器简介
网格碰撞器组件参考

为网格碰撞器准备网格

网格碰撞器用于处理对象物理碰撞的不可见形状。碰撞器不需要与对象的网格完全相同形状 - 粗略的近似值通常更有效,并且在游戏玩法中难以区分。 更多信息
参见 词汇表
需要一个游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等。游戏对象的函数由附加到其上的组件定义。 更多信息
参见 词汇表
网格Unity 的主要图形基元。网格构成了 3D 世界的重要组成部分。Unity 支持三角形或四边形多边形网格。NURBS、NURMS、细分曲面必须转换为多边形。 更多信息
参见 词汇表
进行正确配置,以便碰撞当物理引擎检测到两个游戏对象的碰撞器发生接触或重叠时,就会发生碰撞,前提是至少有一个具有刚体组件并且处于运动状态。 更多信息
参见 词汇表
准确。

允许读取和写入网格

某些配置和优化需要启用网格的读/写权限。有关此上下文中“读/写”的含义的详细信息,请参阅有关网格 API 属性Mesh.isReadable的文档。

如果满足以下任何情况,则必须启用网格的读/写权限

  • 附加的网格碰撞器一个自由形式的碰撞器组件,它接受网格引用来定义其碰撞表面形状。 更多信息
    参见 词汇表
    的变换具有负缩放比例(例如,(–1, 1, 1)),并且网格是凸面的。
  • 附加的网格碰撞器的变换发生倾斜或剪切(例如,当旋转的变换具有缩放的父变换时)。
  • 网格碰撞器的烘焙选项(请参阅配置网格烘焙)设置为任何非默认值(即,除了之外的所有选项都启用)。

启用网格的读/写权限

要启用网格的读/写权限,网格必须具有Mesh.isReadable值为true。要通过编辑器应用此设置

  1. 项目窗口显示 Assets 文件夹内容的窗口(项目选项卡) 更多信息
    参见 词汇表
    中,选择包含网格的模型文件包含 3D 数据的文件,可能包括网格、骨骼、动画、材质和纹理的定义。 更多信息
    参见 词汇表
    (例如,FBX 文件)。
  2. 检查器一个 Unity 窗口,显示当前选定的游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
    参见 词汇表
    中,选择模型
  3. 网格部分,启用读/写

配置网格烘焙

要计算与网格碰撞器的碰撞,物理系统需要能够访问网格的几何体。“网格烘焙”是指将 3D 网格从其原始格式(例如,FBX 或 OBJ)转换为物理系统可以读取的格式的过程。烘焙过程获取原始网格数据并构建空间搜索结构,以便 Unity 可以更快地响应物理查询。

您可以在导入设置(导入设置>模型>生成碰撞器)或运行时触发网格烘焙。

在运行时优化网格烘焙

在网格烘焙过程中,Unity 可以应用各种优化来减少网格的大小和复杂度(例如:删除冗余顶点、合并重叠三角形或简化几何体以减少三角形的数量)。然后,Unity 可以更快、更高效地加载优化的网格,从而减少内存使用并提高整体性能。

要控制运行哪些优化,请使用网格碰撞器的烘焙选项属性(对应于 C# 枚举MeshColliderCookingOptions)。有关可用不同烘焙选项的概述,请参阅网格碰撞器组件参考

默认的烘焙选项适用于您在编辑器中烘焙并且从未在运行时重新烘焙的任何网格碰撞器。它们也适用于大多数您在运行时需要的网格碰撞器(特别是只需要烘焙一次的大型或复杂网格)。但是,如果您需要在运行时快速生成碰撞几何体(例如,程序化表面或响应玩家行为而变形的网格碰撞器),则可能需要更改烘焙选项以使碰撞器生成速度更快。

要优化 Unity 在运行时生成的网格的网格烘焙,您可以禁用数据清理步骤(启用网格清理焊接共位顶点)。但是,如果您禁用了数据清理步骤,则必须有其他方法来验证网格数据,以确保您没有使用这些算法否则会清理的数据。

  • 如果禁用了启用网格清理,则必须确保网格没有退化三角形(例如,顶点共线的细长三角形,或面积接近零或无限大的三角形)。
  • 如果禁用了焊接共位顶点,则必须确保网格没有共位顶点(即,多个顶点存在于同一位置)。

您还可以禁用为更快模拟进行烘焙以节省内存使用量。

更改烘焙选项后,需要为网格应用读/写权限。有关如何执行此操作的指南,请参阅允许读取和写入网格

优化未渲染的网格

如果网格仅需要为物理计算提供数据而不是渲染(例如,用于不可见的碰撞器),则不需要导入网格的法线。没有法线的网格需要更少的内存并使用更少的磁盘空间。

要禁用法线

  1. 在项目窗口中,选择网格。
  2. 在检查器的导入设置中,选择模型
  3. 导航到几何体部分并将法线设置为
网格碰撞器简介
网格碰撞器组件参考