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

Mesh.uv2

Declaration

public Vector2[] uv2;

Описание

Координаты текстуры (UVs) во втором канале.

Этот канал также обычно называется "UV1". Он отображается на семантическом канале шейдера `TEXCOORD1`. Когда вы вызываете Mesh.HasVertexAttribute, этот канал соответствует VertexAttribute.TexCoord1.

Unity может использовать этот канал для хранения UVs для печеных карт освещения, или ввода UVs, который он использует для вычисления окончательного UVs для карт освещения реального времени. Для более подробной информации см. Лайтмап UVs.

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

Это свойство поддерживается для обратной совместимости, но более новые функции GetUVs и SetUVs позволяют получить доступ к тем же данным в более удобной для пользователя форме и использовать значение Vector3 или Vector4, если это необходимо.

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

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

// Generate planar uv coordinates for the second uv set

using UnityEngine;

public class ExampleClass : MonoBehaviour { void Start() { Mesh mesh = GetComponent<MeshFilter>().mesh; Vector3[] vertices = mesh.vertices; Vector2[] uvs = new Vector2[vertices.Length];

for (int i = 0; i < uvs.Length; i++) { uvs[i] = new Vector2(vertices[i].x, vertices[i].z); } mesh.uv2 = uvs; } }

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