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

Mesh.SetUVs

Declaration

public void SetUVs(int channel, Vector2[] uvs);
public void SetUVs(int channel, Vector3[] uvs);
public void SetUVs(int channel, Vector4[] uvs);
public void SetUVs(int channel, List<Vector2> uvs);
public void SetUVs(int channel, List<Vector3> uvs);
public void SetUVs(int channel, List<Vector4> uvs);
public void SetUVs(int channel, NativeArray<T> uvs);

Параметры

Параметр Описание
канал Канал в диапазоне [0..7].
УВС Данные UV для установки.

Описание

Устанавливает координаты текстуры (UVs), хранящиеся в заданном канале.

Устанавливает UVs в качестве списка либо Vector2, Vector3, или Vector4. 2-мерные (Vector2) данные являются наиболее распространенным вариантом использования, но 3- или 4-мерные данные иногда используются для специальных шейдерных эффектов.

Unity хранит UVs в пространстве 0-1. [0,0] представляет левый нижний угол текстуры, а [1,1] — правый верхний. Значения не зажимаются; при необходимости можно использовать значения ниже 0 и выше 1.

A channel значение 0 соответствует каналу, который обычно называется "UV0", и отображается на семантическом шейдере `TEXCOORD0`. channel значение 1 возвращает канал, который обычно называется "UV1", и отображается на семантическом шейдере `TEXCOORD1`. Это продолжается до и включая channel значение 7.

По умолчанию, Unity использует первый канал (UV0) для хранения UVs для регулярных текстур, таких как диффузные карты и зеркальные карты. Unity может использовать второй канал (UV1) для хранения печеного lightmap UVs, а третий канал (UV2) для хранения входных данных для lightmap реального времени UVs. Для получения дополнительной информации о lightmap UVs и о том, как Unity использует эти каналы, см. Лайтмап UVs.

Примечание: Вы также можете получить доступ к данным UV, используя uv для UV0, uv2 для UV1, uv3 для UV2, и так далее до uv8. Однако этот старый способ работы не рекомендуется; свойства менее удобны для пользователя, чем эта функция и GetUVs, и они также вызывают выделение кучи.

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

Declaration

public void SetUVs(int channel, Vector2[] uvs, int start, int length, Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);
public void SetUVs(int channel, Vector3[] uvs, int start, int length, Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);
public void SetUVs(int channel, Vector4[] uvs, int start, int length, Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);
public void SetUVs(int channel, List<Vector2> uvs, int start, int length, Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);
public void SetUVs(int channel, List<Vector3> uvs, int start, int length, Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);
public void SetUVs(int channel, List<Vector4> uvs, int start, int length, Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);
public void SetUVs(int channel, NativeArray<T> uvs, int start, int length, Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);

Параметры

Параметр Описание
канал Канал UV, в диапазоне [0..7].
УВС UVs для установки для данного индекса.
начало Индекс первого элемента, который будет взят из входного массива.
длина Количество элементов, которые будут взяты из входного массива.
флаги Флаги, управляющие поведением функции, см. MeshUpdateFlags.

Описание

Устанавливает UVs сетки, используя часть входного массива.

Этот метод ведет себя так же, как если бы вы вызвали SetUVs с массивом, который является фрагментом всего массива, начиная с индекса start и имея заданный length. Полученная Сетка имеет length количество вершин.