2015-05-15 6 views
12

Im za pomocą Water4Advance symulować fale oceanu w Unity3d 5.0. Mam swój samolot przesiedlony w czasie pracy z Gerstnerem Displace. Widzę, jak siatka jest zdeformowana i dodaję do niej MeshCollider i lubię odświeżać tę siatkę zderzacza w środowisku wykonawczym. byłem w pracy to na Unity 4.6 z tego skryptu:Unity3d 5 WavePro Dynamic MeshCollider

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

Ale teraz mam tylko płaską oryginalny samolot Prefab. enter image description here

Jak mogę zaktualizować ten MeshCollider za pomocą przesuniętej siatki?

+0

Kiedy i jak często można przypisać do siatki zderzacz? – Agumander

+0

Robię na Update – joreldraw

Odpowiedz

4

Spróbuj tego:

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

stąd:

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

+0

Nie działa dla mnie. Próbuję tego, ale nie dostaję siatki modyfikowanej Water4 na zderzaczu. – joreldraw

+0

Hmm - czy mógłbyś zamieścić mały próbny przykładowy projekt Unity demonstrujący to? – scotru

+0

https://drive.google.com/file/d/0B8A2kG9bh7_PRVB3RU5ORUdIX3M/view?usp=sharing – joreldraw