unity 如何刷新当前动画的mesh
时间: 2023-08-20 17:07:24 浏览: 39
要刷新当前动画的Mesh,您可以使用SkinnedMeshRenderer类中的UpdateSkinnedMesh方法。该方法将重新计算SkinnedMeshRenderer的每个顶点的位置和法线,并将其更新到GPU中。以下是一些示例代码,演示如何使用UpdateSkinnedMesh方法来刷新动画的Mesh:
```
using UnityEngine;
public class UpdateMesh : MonoBehaviour
{
private SkinnedMeshRenderer skinnedMeshRenderer;
private void Start()
{
skinnedMeshRenderer = GetComponent<SkinnedMeshRenderer>();
}
private void Update()
{
// 判断当前是否正在播放动画
if (skinnedMeshRenderer.enabled && skinnedMeshRenderer.isVisible && skinnedMeshRenderer.isPartOfStaticBatch == false && skinnedMeshRenderer.rootBone != null)
{
// 刷新Mesh
skinnedMeshRenderer.UpdateSkinnedMesh();
}
}
}
```
该代码将在每个帧上检查SkinnedMeshRenderer是否正在播放动画,并在需要时调用UpdateSkinnedMesh方法来刷新Mesh。请注意,为了获得最佳性能,您可能需要对代码进行优化,以便仅在必要时才调用UpdateSkinnedMesh方法。
阅读全文