Unity 6.3
0 онлайн 89 гостей 3 в системе
Вход

Collider2D.CreateMesh

Declaration

public Mesh CreateMesh(bool useBodyPosition, bool useBodyRotation, bool useDelaunay = true);

Параметры

Параметр Описание
useBodyPosition Должна ли сетка преобразовываться в зависимости от положения прикрепленных ,Rigidbody2D,?
useBodyRotation Должна ли сетка преобразовываться путем вращения прикрепленного Rigidbody2D?
useDelaunay При true для создания сетки используется триангуляция Делоне. Это может уменьшить количество вершин, созданных в сетке Collider, и уменьшить количество созданных маленьких треугольников, что может улучшить общий размер сетки и производительность.

Возвращаемое значение

Сетка Планарная Mesh созданная, которая соответствует геометрии коллайдера или NULL если Mesh не может быть создана.

Описание

Создает плоскость Mesh, идентичную области, определенной геометрией Collider2D.

Проще говоря, этот метод создаст Mesh точно отражает район, определенный в соответствии с Collider2D. Созданный Mesh затем может быть использован для любой цели, включая, но не ограничиваясь, навигационные меши для 2D навигации. Collider2D не владеет созданным Mesh и вы несете ответственность за его жизнь, поэтому не удалять Mesh приведет к утечке памяти. Collider2D не изменяется ни в коей мере во время этого вызова. Collider2D должны иметь действительные формы, присутствующие для Mesh в противном случае будет возвращено NULL, указывающее на то, что Mesh был создан.

Все Collider2D геометрия живет в пространстве Rigidbody2D Вы можете выбрать, будет ли данное устройство Mesh вершины преобразуются по Rigidbody2D положение и вращение с использованием useBodyPosition и useBodyRotation Если данное Collider2D не прикрепляется к Rigidbody2D тогда геометрия постоянно находится в мировом пространстве и оба useBodyPosition и useBodyRotation всегда должно быть установлено на false.

Ниже приводится более подробная информация о том, как Collider2D формы учитываются при создании Mesh. Хотя существует множество видов Collider2D, они формируют только геометрию столкновений, состоящую из следующих типов примитивов: Circle, Capsule, Polygon и Edge. Эти примитивы делятся на две группы: замкнутые выпуклые и открытые. Примитивы Circle, Capsule и Polygon — замкнутые выпуклые, они ограничивают замкнутую выпуклую область. Примитив Edge относится к открытому типу и задаёт геометрию без внутренней площади.

A CircleCollider2D создаст одну первичную окружность. A CapsuleCollider2D создаст один примитив капсулы. BoxCollider2D создаст один полигональный примитив. A PolygonCollider2D может создавать множество полигональных примитивов для преобразования потенциально вогнутой области в множество выпуклых многоугольников. EdgeCollider2D может производить множество рёберных примитивов. TilemapCollider2D может создавать множество полигональных примитивов (на плитку). CompositeCollider2D может создавать либо множественные полигональные примитивы (в режиме Полигон), либо множественные рёберные примитивы (в режиме Контур).

При создании Mesh для представления Collider2D В геометрии, все закрытые выпуклые примитивы (окружность, капсула и многоугольник) создают соответствующую заполненную площадь, определенную этими примитивами. В случае, когда есть несколько многоугольников, создается общая площадь всех многоугольников. Обратите внимание, что когда BoxCollider2D.edgeRadius используется значение, большее нуля (для получения радиальных кромок), Mesh создается для того, чтобы также представлять эту геометрию.

При создании Mesh для представления Collider2D В геометрии, все открытые примитивы (рёбра) имеют особое обращение. Когда стартовая вершина первого ребра совпадает с конечной вершиной последнего ребра (для определения псевдо-закрытой области), то создается сетка, чтобы представить эту закрытую область, даже если 2D физика сама не рассматривает ее как такую. Если вершины не совпадают, то Mesh будет создано только если EdgeCollider2D.edgeRadius больше нуля, поскольку это приводит к образованию рёбер с площадью.

Ан EdgeCollider2D при использовании с совпадающим началом/конец вершины создаст Mesh Любая вогнутая вершина (создающая вогнутую конфигурацию) будет рассматриваться как находящаяся на выпуклом корпусе, в результате чего образуется выпуклая плоскость Mesh. Если выпуклая Mesh требуется, то следует использовать несколько полигональных примитивов i.e. a PolygonCollider2D или а CompositeCollider2D в режиме многоугольника. CompositeCollider2D в режиме контура создает рёбра с совпадающими вершинами начала и конца, поэтому всегда создает закрытую форму Mesh который также поддерживает CompositeCollider2D.edgeRadius.

Дополнительные ресурсы: Collider2D.GetShapeHash.