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

Mesh.uv

Declaration

public Vector2[] uv;

Описание

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

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

По умолчанию Unity использует этот канал для хранения UVs для часто используемых текстур: диффузных карт, зеркальных карт и т.д.

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

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

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

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

using UnityEngine;
using System.Collections;

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.uv = uvs; } }

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