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

网格.uv8

提出修改建议

成功!

感谢您帮助我们提高 Unity 文档质量。虽然无法接受所有提交,但我们确实会仔细阅读用户提出的每条修改建议,并在适用的情况下进行更新。

关闭

提交失败

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

关闭

取消

切换到手册
public Vector2[] uv8;

描述

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

此通道通常也称为“UV7”。它映射到着色器语义 `TEXCOORD7`。如果调用 Mesh.HasVertexAttribute,此通道对应于 VertexAttribute.TexCoord7

Unity 在 0-1 空间中存储 UV。[0,0] 表示纹理的左下角,[1,1] 表示右上角。值不进行限定;在需要时,可以使用 0 以下和 1 以上的值。

保留此属性是为了向后兼容,但较新的 GetUVsSetUVs 函数允许使用更加用户友好的方式访问相同数据,并且在需要时会使用 Vector3 或 Vector4 值。

此属性返回一个数据副本。这意味着它会导致堆栈内存分配。这也意味着,要对原始数据进行修改,必须更新副本,然后将更新的副本重新赋值给网格。

以下示例演示如何创建一个数组来保存 UV 数据、给其分配纹理坐标,然后将其分配给网格。

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

其他资源: GetUVsSetUVsAcquireReadOnlyMeshData