Version: 2023.2
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 The channel, in [0..7] range.
uvs The UV data to set.

描述

Sets the texture coordinates (UVs) stored in a given channel.

Sets the UVs as a List of either Vector2, Vector3, or Vector4. 2 dimensional (Vector2) data is the most common use case, but 3 or 4 dimensional data is sometimes used for special shader effects.

Unity stores UVs in 0-1 space. [0,0] represents the bottom-left corner of the texture, and [1,1] represents the top-right. Values are not clamped; you can use values below 0 and above 1 if needed.

A channel value of 0 corresponds to the channel that is commonly called "UV0", and maps to the shader semantic `TEXCOORD0`. A channel value of 1 returns the channel that is commonly called "UV1", and maps to the shader semantic `TEXCOORD1`. This continues up to and including a channel value of 7.

By default, Unity uses the first channel (UV0) to store UVs for regular textures such as diffuse maps and specular maps. Unity can use the second channel (UV1) to store baked lightmap UVs, and the third channel (UV2) to store input data for real-time lightmap UVs. For more information on lightmap UVs and how Unity uses these channels, Lightmap UVs.

Note: You can also access UV data using uv for UV0, uv2 for UV1, uv3 for UV2, and so on up to uv8. However, this older way of working is not recommended; the properties are less user-friendly than this function and GetUVs, and they also cause heap allocations.

Additional resources: 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

描述

使用输入数组的一部分设置网格的 UV。

此方法的行为方式如同调用 SetUVs,所使用的数组为整个数组的一个切片(从 start 索引开始,长度为给定 length)。生成的网格具有 length 数量的顶点。