UnityAPI手册-2019.4官网版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Collider2D.CreateMesh
# [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html).CreateMesh public [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) **CreateMesh** (bool **useBodyPosition**, bool **useBodyRotation**); ## 参数 | useBodyPosition | 是否应按附加的 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 的位置变换网格? | | ----------------- | ----------------------------------------------------------------------------------------------------------------- | | useBodyRotation | 是否应按附加的 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 的旋转变换网格? | ## 返回 **Mesh** 创建与碰撞体几何体匹配的平面 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),如果无法创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),则为 NULL。 ## 描述 创建与 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 几何体定义的区域相同的平面 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html)。 简单来说,此方法会创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),准确表示 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 定义的区域。创建的 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) 随后可以用于任何用途,包括但不限于用于 2D 导航的导航网格。[Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 不拥有创建的 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),由你负责其生命周期,因此不删除 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) 会导致内存泄露。[Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 在此调用过程中不会以任何方式改变。[Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 必须具有有效的形状,才能创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),否则会返回 NULL,指示未创建任何 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html)。 所有 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 几何体都处于所附加到的 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 的空间中。可以分别使用 `useBodyPosition` 和 `useBodyRotation` 来选择是否按 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 位置和旋转变换 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) 矢量。如果 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 未附加到 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html),则几何体永久处于世界空间中,并且 `useBodyPosition` 和 `useBodyRotation` 都应始终设置为 false。 接下来是有关创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) 时应如何考虑 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 形状的更多详细信息。尽管有许多类型的 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html),不过它们只生成由以下原始形状类型组成的碰撞几何体:圆形、胶囊体、多边形和边缘。这些原始类型拆分为两个组,称为闭合凸面图元和开放图元。圆形、胶囊体和多边形类型的图元称为闭合凸面图元,可定义由图元确定界限的闭合凸面区域。边缘图元是开放类型,可定义没有内部区域的几何体。 [CircleCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/CircleCollider2D.html) 会生成单个圆形图元。[CapsuleCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/CapsuleCollider2D.html) 会生成单个胶囊体图元。[BoxCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/BoxCollider2D.html) 会生成单个多边形图元。[PolygonCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/PolygonCollider2D.html) 可以生成多个多边形图元,以将可能的凹面区域转换为多个凸面多边形。[EdgeCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/EdgeCollider2D.html) 可以生成多个边缘图元。[TilemapCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Tilemaps.TilemapCollider2D.html) 可以生成多个多边形图元(按图块)。[CompositeCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/CompositeCollider2D.html) 可以生成多个多边形图元(在多边形模式下),或是生成多个边缘图元(在轮廓模式下)。 创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) 以表示 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 几何体时,所有闭合凸面图元(圆形、胶囊体和多边形)都会生成由这些图元定义的相应填充区域。如果有多个多边形,则会创建所有多边形组成的总体区域。请注意,使用大于零的 [BoxCollider2D.edgeRadius](https://docs.unity3d.com/cn/2019.4/ScriptReference/BoxCollider2D-edgeRadius.html)(用于生成径向边缘)时,也会创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) 以表示该几何体。 创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html) 以表示 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 几何体时,所有开放图元(边缘)都具有特殊处理。第一个边缘的起始顶点与最后一个边缘的结束顶点一致(用于定义伪闭合区域)时,会创建网格以表示该闭合区域,即使 2D 物理本身并不这样处理。如果顶点不一致,则仅当 [EdgeCollider2D.edgeRadius](https://docs.unity3d.com/cn/2019.4/ScriptReference/EdgeCollider2D-edgeRadius.html) 大于零时才会创建 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),因为这会生成具有区域的边缘。 与一致的起始/结束顶点结合使用的 [EdgeCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/EdgeCollider2D.html) 会创建一个 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),它是所有边缘顶点的凸面外壳。任何凹面顶点(生成凹面配置)都会被视为处于凸面外壳上,从而生成凸面平面 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html)。如果需要凸面 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html),则应使用多个多边形图元,即 [PolygonCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/PolygonCollider2D.html) 或多边形模式下的 [CompositeCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/CompositeCollider2D.html)。轮廓模式下的 [CompositeCollider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/CompositeCollider2D.html) 会生成具有一致起始/结束顶点的边缘,因此会始终创建闭合形状 [Mesh](https://docs.unity3d.com/cn/2019.4/ScriptReference/Mesh.html)(也支持 [CompositeCollider2D.edgeRadius](https://docs.unity3d.com/cn/2019.4/ScriptReference/CompositeCollider2D-edgeRadius.html))。 另请参阅:[GetShapeHash](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.GetShapeHash.html) 和 [NavMeshBuildSource.sourceObject](https://docs.unity3d.com/cn/2019.4/ScriptReference/AI.NavMeshBuildSource-sourceObject.html)。
da
2022年5月25日 10:39
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码