版本:Unity 6 (6000.0)
语言英语
  • C#

网格.uv6

建议更改

成功!

感谢您帮助我们提高 Unity 文档质量。虽然我们无法接受所有投稿,但我们会阅读用户提出的每一条建议的更改,并在适用时进行更新。

关闭

提交失败

由于某种原因,无法提交您建议的更改。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册
public Vector2[] uv6;

说明

第六通道中的纹理坐标 (UV)。

此通道也常常称为“UV5”。它映射到着色器语义 `TEXCOORD5`。当您调用 Mesh.HasVertexAttribute 时,此通道对应于 VertexAttribute.TexCoord5

Unity 以 0-1 间距储存 UV。[0,0] 表示纹理的左下角,[1,1] 表示右上角。数值未做限制;在需要时,您可以使用低于 0 和高于 1 的数值。

出于向后兼容性的考虑,此属性受支持,但更新的 GetUVsSetUVs 函数允许您以更加用户友好地方式访问相同数据,并在需要时使用 Vector3 或 Vector4 值。

此属性返回数据的副本。这意味着它会造成堆内存分配。还意味着,要更改原始数据,您必须更新副本,然后将更新后的副本重新分配给网格。

以下示例演示了如何创建数组来容纳 UV 数据,为其分配纹理坐标,然后将其分配给网格。

// Generate planar uv coordinates for the sixth 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.uv6 = uvs; } }

其他资源:GetUVsSetUVsAcquireReadOnlyMeshData