我使用Water4Advance在Unity3d 5.0中模拟海浪。
我在运行系统中使用Gerstner Displace取代了飞机。
我看到了网格如何变形,并向其中添加了MeshCollider,并且我想在运行时刷新此collider网格。
我正在Unity 4.6上使用以下脚本进行此工作:

MeshCollider collider = GetComponent<MeshCollider>();
Mesh mesh = GetComponent<MeshFilter>().mesh;
collider.sharedMesh = null;
collider.sharedMesh = mesh;

但是现在我只得到了平面的原始飞机预制件。

如何用置换的网格更新此MeshCollider?

最佳答案

试试这个:

Mesh myMesh = this.GetComponent<MeshFilter>().mesh;
DestroyImmediate(this.GetComponent<MeshCollider>());
var collider = this.AddComponent<MeshCollider>();
collider.sharedMesh = myMesh;

从这里:

http://answers.unity3d.com/questions/446910/changing-mesh-collider-at-run-time.html

关于c# - Unity3d 5 WavePro动态MeshCollider,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30256007/

10-13 06:39