flags | 控制函数行为的标志,参见 MeshUpdateFlags。 |
使用法线和纹理坐标重新计算网格的切线。
修改网格的顶点和法线后,如果使用引用法线贴图的着色器渲染网格,则需要更新切线。Unity 使用网格的顶点位置、法线和纹理坐标计算切线。RecalculateTangents
向顶点添加一个切线属性,或将切线属性更改为正确的格式。属性的维度为 4,并使用 VertexAttributeFormat.Float32 格式。即使网格没有顶点,RecalculateTangents
也会添加该属性。
using UnityEngine;
public class Example : MonoBehaviour { void Start() { Mesh mesh = GetComponent<MeshFilter>().mesh; mesh.RecalculateTangents(); } }
如果格式不同,RecalculateTangents
会将网格顶点位置、法线和 UV0 数据转换为 VertexAttributeFormat.Float32 格式。
如果网格没有法线、纹理坐标或三角形,则所有切线都将设置为 (1,0,0,1) 向量。
其他资源:RecalculateNormals。