GetUVs
Gets the texture coordinates (UVs) stored in a given channel.
Read time 4 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
GetUVs(int, List<Vector2>)
Gets the texture coordinates (UVs) stored in a given channel.
public void GetUVs(int channel, List<Vector2> uvs)
Parameters
Remarks
Gets 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 value of 0 corresponds to the channel that is commonly called "UV0", and maps to the shader semantic . A value of 1 returns the channel that is commonly called "UV1", and maps to the shader semantic . This continues up to and including a value of 7.
channelTEXCOORD0channelTEXCOORD1channelBy 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 Mesh.uv for UV0, Mesh.uv2 for UV1, Mesh.uv3 for UV2, and so on up to Mesh.uv8. However, this older way of working is not recommended; the properties are less user-friendly than this function and Mesh.SetUVs, and they also cause heap allocations.
GetUVs(int, List<Vector3>)
Gets the texture coordinates (UVs) stored in a given channel.
public void GetUVs(int channel, List<Vector3> uvs)
Parameters
Remarks
Gets 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 value of 0 corresponds to the channel that is commonly called "UV0", and maps to the shader semantic . A value of 1 returns the channel that is commonly called "UV1", and maps to the shader semantic . This continues up to and including a value of 7.
channelTEXCOORD0channelTEXCOORD1channelBy 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 Mesh.uv for UV0, Mesh.uv2 for UV1, Mesh.uv3 for UV2, and so on up to Mesh.uv8. However, this older way of working is not recommended; the properties are less user-friendly than this function and Mesh.SetUVs, and they also cause heap allocations.
GetUVs(int, List<Vector4>)
Gets the texture coordinates (UVs) stored in a given channel.
public void GetUVs(int channel, List<Vector4> uvs)
Parameters
Remarks
Gets 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 value of 0 corresponds to the channel that is commonly called "UV0", and maps to the shader semantic . A value of 1 returns the channel that is commonly called "UV1", and maps to the shader semantic . This continues up to and including a value of 7.
channelTEXCOORD0channelTEXCOORD1channelBy 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 Mesh.uv for UV0, Mesh.uv2 for UV1, Mesh.uv3 for UV2, and so on up to Mesh.uv8. However, this older way of working is not recommended; the properties are less user-friendly than this function and Mesh.SetUVs, and they also cause heap allocations.