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

Подготовка сетки для коллайдеров Mesh

Сеточные коллайдеры требуют GameObject’s Сетка должны быть надлежащим образом сконфигурированы, с тем чтобы столкновения были точными.

Разрешить доступ для чтения и записи в сеть

Существуют особые конфигурации и оптимизации, которые требуют, чтобы Mesh была разрешена для чтения/записи. Для подробностей о том, что означает “читание/запись” в этом контексте, см. документацию по свойству Mesh API Mesh.isReadable.

Сетка должна быть включена для чтения/записи, если выполняется любое из следующих условий:

  • Transform коллайдера Mesh имеет отрицательный масштаб (например, (–1, 1, 1)), а Mesh выпуклая.
  • Transform в присоединенном коллайдере Mesh наклонен или сдвинут (например, когда вращенный Transform имеет масштабированный родитель Transform).
  • Параметры коллайдера Mesh Варианты приготовления пищи (см. Конфигурировать сетчатую кулинарию) устанавливаются на любое значение, кроме значения по умолчанию (то есть все включено, кроме Нет).

Включить чтение/запись в сетку

Чтобы сделать сетку доступной для чтения/записи, сетка должна иметь Mesh.isReadable значение true. Чтобы применить это с помощью Редактора:

  1. В окне Project выберите файл модели (например, файл FBX), содержащий Mesh.
  2. В Inspector, выберите Модель.
  3. В разделе Меши включите Чтение/запись.

Конфигурировать сетчатую кулинарию

Для вычисления столкновений с коллайдером Mesh, физическая система должна иметь возможность доступа к геометрии Mesh. «Приготовление сетки» относится к процессу преобразования сетки 3D из исходного формата (например, FBX или OBJ) в формат, который может быть прочитан системой физики. Процесс приготовления берёт необработанные данные Mesh и создает структуры пространственного поиска, так что Unity может быстрее отвечать на физические запросы.

Вы можете запустить приготовление сетки в Настройках Импорта (Настройки Импорта > Модель > Создать Коллайдеры) или во время выполнения.

Оптимизировать Mesh приготовления во время выполнения

Во время процесса приготовления сетки, Unity может применять различные оптимизации для уменьшения размера и сложности сетки (например: удаление избыточных вершин, слияние перекрывающихся треугольников или упрощение геометрии для уменьшения количества треугольников). Unity может затем загружать оптимизированную сетку более быстро и эффективно, что снижает использование памяти и повышает общую производительность.

Чтобы контролировать, какие оптимизации запускаются, используйте коллайдер Mesh Варианты приготовления пищи свойство (которому соответствует перечисление C# MeshColliderCookingOptions). Для обзора различных доступных вариантов приготовления, см. Справочная информация о компонентах сетчатого коллайдера.

По умолчанию параметры Варианты приготовления пищи подходят для любого коллайдера меши, который вы готовите в Редакторе и никогда не перевариваете во время выполнения. Они также подходят для большинства коллайдеров меши, которые вам нужны во время выполнения (особенно большие или сложные меши, которые нужно готовить только один раз). Однако, вам может потребоваться изменить параметры Варианты приготовления пищи, чтобы ускорить генерацию коллайдера, если вам нужно быстро генерировать геометрию столкновения во время выполнения (например, процедурные поверхности или коллайдеры меши, которые деформируются в ответ на поведение игрока).

Чтобы оптимизировать приготовление меши для мешей, которые Unity генерирует во время выполнения, вы можете отключить шаги очистки данных (Enable Mesh Cleaningи Weld Co-Located Vertices). Однако, если вы отключите шаги очистки данных, у вас должен быть другой способ проверки данных меши, чтобы убедиться, что вы не используете данные, которые эти алгоритмы в противном случае очистили бы.

  • Если Enable Mesh Cleaning отключено, необходимо убедиться, что в сетке нет вырожденных треугольников (например, тонких треугольников с коллинеарными точками или треугольников с площадью, близкой к нулю или бесконечности).
  • Если Сварные вершины отключены, необходимо убедиться, что в сетке нет совместно расположенных вершин (т.е. множественных вершин, находящихся в одном и том же месте).

Вы также можете отключить Кук для более быстрого моделирования чтобы сохранить использование памяти.

Когда вы изменяете Настройки приготовления, вам нужно применить разрешение на чтение/запись к Mesh. Для инструкций о том, как это сделать, см. Разрешение доступа для чтения и записи к Mesh.

Оптимизация нерендируемых мешей

Если меше нужны данные только для физических расчетов, а не для рендеринга (например, для невидимых коллайдеров), вам не нужно импортировать нормы меши. Меши без норм требуют меньше памяти и используют меньше места на диске.

Чтобы отключить нормали:

  1. В окне Project выберите Mesh.
  2. В настройках импорта Inspector выберите Модель.
  3. Перейдите в раздел Геометрия и установите Нормы до Нет.