Unity 6.3
0 онлайн 106 гостей 3 в системе
Вход
Ассеты и медиа Шаг 34 из 148

Доступ к мешам через Mesh API

Mesh класс — основной программный интерфейс к геометрии меша объекта. Он представляет треугольники, положения вершин, нормали и текстурные координаты массивами и содержит ряд других полезных свойств и функций, помогающих формировать меш.

Доступ к сетке объекта

Данные сетки прикрепляются к объекту с помощью Сетчатый фильтр компонента (и объекту также потребуется MeshRenderer Этот компонент доступен с помощью знакомого интерфейса пользователя, который GetComponent функция:

using UnityEngine;
public class ExampleScript : MonoBehaviour
{
    MeshFilter mf;
    void Start()
    {
        //if this gameObject has a MeshFilter, mf will reference the component
        mf = GetComponent<MeshFilter>();    
    }
}

Добавить данные сетки

Объект Mesh имеет свойства для вершин и связанных с ними данных (нормальные и координаты UV), а также для данных треугольника. Вершины могут быть предоставлены в любом порядке, но массивы нормальных и UVs должны быть упорядочены таким образом, чтобы все индексы соответствовали вершинам (т.е. элемент 0 массива нормальных обеспечивает нормаль для вершины 0 и т.д.). Вершины Vector3s представляют точки в локальном пространстве объекта. Нормальные нормализованы Vector3s, представляя направления, опять же в локальных координатах. UVs указаны как Vector2s, но поскольку тип Vector2 не имеет полей, называемых U и V, вы должны мысленно преобразовать их в X и Y соответственно.

Треугольники задаются тройками целых чисел, которые служат индексами в массиве вершин. Вместо особого класса для треугольника используется просто список целочисленных индексов. Они берутся по три на треугольник: первые три элемента задают первый треугольник, следующие три — второй, и так далее. Важная деталь — порядок угловых вершин. Их следует расположить так, чтобы при взгляде на видимую внешнюю сторону треугольника углы обходились по часовой стрелке; при этом с какого угла начинать, значения не имеет.

Работа с необработанными данными сетки

Mesh класс имеет и более низкоуровневый расширенный API, позволяющий работать с сырыми данными вершинного и индексного буферов меша. Это полезно там, где нужны максимальная производительность или минимальное количество выделений памяти.

Дополнительные ресурсы