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

Mesh.SetUVs

提出更改

成功!

感谢您帮助我们提升 Unity 文档的品质。尽管无法接受所有的提交,我们都会阅读用户提出的每一项建议更改,并在必要时进行更新。

关闭

提交失败

由于某些原因,您建议的更改未能提交。请过几分钟重试。我们感谢您花时间帮助我们提升 Unity 文档的品质。

关闭

取消

切换至手册

声明

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);

参数

channel 在 [0..7] 范围内的通道。
uvs 要设置的 UV 数据。

描述

设置某个给定通道中存储的纹理坐标(UV)。

将 UV 设置为 Vector2Vector3Vector4 的列表。2 维(Vector2)数据是最常见的用例,但有时会使用 3 维或 4 维用于特殊着色器效果。

Unity 以 0-1 空间存储 UV。 [0,0] 表示纹理的左下角,而 [1,1] 表示右上角。不会对值进行限定;根据需要,可以使用低于 0 和高于 1 的值。

channel 值 0 对应于通常称为“UV0”的通道,并映射到着色器语义 `TEXCOORD0`。channel 值 1 返回通常称为“UV1”的通道,并映射到着色器语义 `TEXCOORD1`。这将持续到并且包括 channel 值 7。

默认情况下,Unity 将第一个通道(UV0)用于存储漫射贴图和镜面贴图等常规纹理的 UV。Unity 可以使用第二个通道(UV1)来存储烘焙光照贴图 UV,并使用第三个通道(UV2)来存储用于实时光照贴图 UV 的输入数据。有关光照贴图 UV 的详细信息以及 Unity 如何使用这些通道,请参见光照贴图 UV

注意:还可以使用 uv(UV0)、uv2(UV1)、uv3(UV2),一直到 uv8 访问 UV 数据。但是,此旧方法不建议使用;与该函数和 GetUVs 相比,这些属性的用户友好性较差,而且还会造成堆分配。

其他资源:GetUVs


声明

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);

参数

channel UV 通道,范围为 [0..7]。
uvs 要为给定索引设置的 UV。
start 从输入数组中获取的第一个元素的索引。
length 从输入数组中获取的元素数量。
flags 控制函数行为的标志,请参阅 MeshUpdateFlags

描述

使用 input 数组的一部分设置 Mesh 的 UV。

此方法如同您使用一个数组(该数组是整个数组的片断,从 start 索引开始,长度为给定的 length)调用 SetUVs。生成 Mesh 具有 length 数量的顶点。