using UnityEngine;
using System.Collections;
[RequireComponent(typeof(SkinnedMeshRenderer), typeof(MeshCollider))]
public class DynamicMeshCollider : MonoBehaviour
{
private SkinnedMeshRenderer skinnedMeshRenderer;
private Mesh mesh;
// Use this for initialization
void Awake()
{
skinnedMeshRenderer = GetComponent<SkinnedMeshRenderer>();
mesh = Instantiate(skinnedMeshRenderer.sharedMesh) as Mesh;
}
// Update is called once per frame
void Update()
{
skinnedMeshRenderer.BakeMesh(mesh);
GetComponent<MeshCollider>().sharedMesh = mesh;
}
}
该物体必须含有SkinnedMeshRenderer
Animator组件需要enable状态,上面也要有对应的动画控制器(Animator Controller)。
注意:每帧烘焙mesh导致的性能损耗。如非必要不建议每帧烘焙