Version: 6000.3
语言: 中文
网格体碰撞器简介
网格碰撞器组件参考

为网格体碰撞器准备网格体

网孔碰撞体 用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格体形状完全相同 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表
需要一个游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
网格Unity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表
正确配置,以便碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
请参阅术语表
是准确的。

允许对网格体进行读写访问

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

如果满足以下任何情况,则必须启用 Mesh 读/写:

  • 所附的网格碰撞体自由形式碰撞器组件,它接受网格体参考来定义其碰撞表面形状。更多信息
    请参阅术语表
    的变换具有负缩放(例如,(–1, 1, 1)),并且网格体是凸的。
  • 附加的网格体碰撞器的变换是倾斜或剪切的(例如,当旋转的变换具有缩放的父变换时)。
  • 网格体碰撞器的 烘焙选项(Cooking Options)(请参阅配置网格体烘焙)设置为默认值以外的任何值(即,除 无(None) 之外的所有值都已启用)。

启用网格体读/写

要启用网格体读/写,网格体必须具有Mesh.isReadabletrue.要通过编辑器应用此设置:

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

配置网格烘焙

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

你可以在 导入设置(导入设置(Import Settings) > 模型(Model > 生成碰撞体(Generate Colliders) )或运行时触发网格体烘焙。

在运行时优化网格体烘焙

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

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

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

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

  • 如果禁用 启用网格体清理(Enable Mesh Cleaning) ,则必须确保网格体没有简并三角形(例如,点共线的细三角形,或面积接近零或无边大的三角形)。
  • 如果禁用了 焊接共置顶点(Weld Colocated Vertices),则必须确保网格体没有共置顶点(即同一位置存在多个顶点)。

你还可以禁用 烘焙以加快模拟速度(Cook For Faster Simulation) 以节省内存使用。

更改烘焙选项时,需要对网格体应用读/写权限。有关如何执行此作的指导,请参阅允许对网格体的读写访问。

优化非渲染网格体

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

要禁用法线:

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