TheOnlyOne Geschrieben 10. Februar 2019 Melden Share Geschrieben 10. Februar 2019 Hallo, ich habe ein Flusskurve Mesh und möchte, dass wo ein Objekt, welches in die Flusskurve runterfällt, Wasserspritzer an der Kollisionsstelle mit Wasser auflöst und hindurch fällt. Ich versuche das mit Collision umzusetzen und aus Collision einen Trigger machen. Trigger lässt sich aber ja nur mit convex Aktivierung machen. Und hier fangen meine Probleme an: Convex verformt Collider ja konvexmäßig und die Kurve sieht so aus: Um jetzt den Trigger ideal nach Meshform anzupassen, muss ich den Mesh aufteilen, damit es konfex wird. Wenn ich 2 teile erstelle siehts immer noch so aus: Muss also 5 mal so ein kleines Stück Mesh aufteilen, nur damit convex vernünftig aussieht. Das Ganze ist schon ziemlich aufwendig, aber dann muss ich ja noch auf jedes Objekttrigger noch einen Script draufhängen, also 5 Stück insgesamt, damit Spritzer aufgelöst werden, an der Collisionsstelle. Entweder mache ich hier was falsch, oder Unity hat hier einen komischen Weg gewählt, dass Trigger nur mit convex funktionieren. Das ist nicht nur aufwändig, sondern kostet auch viel Performance, angenommen habe ich 10 solche Kurven in der Szene, dann muss ich 50 Collision Scripte draufhängen, damit Spritzer funktionieren?! Wie würdet ihr dieses Problem angehen? Gibt es welche Alternativen? Kann man mit Raycast irgendwie prüfen, wann Oberfläche eines Objekts mit anderer Oberfläche kollidiert, ohne ganze convex Dinge? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 10. Februar 2019 Melden Share Geschrieben 10. Februar 2019 5 BoxCollider (die ich statt 5 MeshCollidern nehmen würde) dürften immer noch wesentlich performanter sein als ein konkaver MeshCollider. Das ist wohl auch der Grund, warum es keine konkaven Trigger geben kann. Ist übrigens keine Entscheidung von Unity, sondern von PhysX, welches Unity als 3D-Physik-Engine benutzt. Was die Scripts angeht... in einigen Fällen kannst du einfach alle Collider auf ein GameObject packen. In diesem Fall wird das nicht gehen, weil sich BoxCollider nicht relativ zu ihrem GameObject drehen lassen. Du kannst aber einen Rigidbody auf den Parent aller Collider packen und ihn auf kinematic stellen, damit er nicht durch die Gegend fliegt. Das GameObject mit dem Rigidbody kriegt dann ebenfalls alle OnTrigger-Events mit. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TheOnlyOne Geschrieben 10. Februar 2019 Autor Melden Share Geschrieben 10. Februar 2019 vor 52 Minuten schrieb Sascha: 5 BoxCollider (die ich statt 5 MeshCollidern nehmen würde) dürften immer noch wesentlich performanter sein als ein konkaver MeshCollider. Das ist wohl auch der Grund, warum es keine konkaven Trigger geben kann. Ist übrigens keine Entscheidung von Unity, sondern von PhysX, welches Unity als 3D-Physik-Engine benutzt. Danke für deine Aufklärung. Ich kann ja nachvollziehen warum sie das gemacht haben, immerhin sollte ja Unity mit PhysX 3.3 doppelt so schnell sein https://docs.unity3d.com/Manual/UpgradeGuide5-Physics.html Aber trotzdem könnte man irgendwie leichter für Entwickler machen, als ganzes Mesh auf konfex zu schneiden. In meinem Fall muss ich auch noch UV anpassen für einzelen Teilchen Zitat in einigen Fällen kannst du einfach alle Collider auf ein GameObject packen Gut zu wissen. Weil ich hatte mal früher gelesen, dass man nur verschiedene Collider Typen auf einem Objekt haben kann.https://answers.unity.com/questions/188775/having-more-than-one-collider-in-a-gameobject.html Zitat Du kannst aber einen Rigidbody auf den Parent aller Collider packen und ihn auf kinematic stellen, damit er nicht durch die Gegend fliegt. Das GameObject mit dem Rigidbody kriegt dann ebenfalls alle OnTrigger-Events mit. Danke, das ist denke ich bessere Lösung als zig Teile mit Scripts zu versehen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 10. Februar 2019 Melden Share Geschrieben 10. Februar 2019 vor einer Stunde schrieb TheOnlyOne: Weil ich hatte mal früher gelesen, dass man nur verschiedene Collider Typen auf einem Objekt haben kann. Das ist von 2011 und schon gaaanz lange nicht mehr aktuell Bei Unity sind alle Ressourcen/Infos, die älter sind als 1-2 Jahre, eher erstmal mit Vorsicht zu genießen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.