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 количество вершин.