Unity3D, Die Weise zu tun, 2D-Kollision ist schneller?
Ich bin dabei ein 2D-Spiel, wo die Feinde Schießen auf meinen player. Es gibt zwei Möglichkeiten, das zu tun Kollision der Kugeln:
- Add-Beschleunigern zu Kugeln. Hinzufügen Festkörper zu Spieler. Verwenden OnCollision() Weg, das zu tun Kollisionserkennung.
- Verwenden Vector3.Entfernung() um zu prüfen, jede Kugel ist der Abstand zwischen Spieler und Kugeln, wenn er kleiner ist als der VORGEGEBENE Wert, dann ist mein Spieler getroffen.
Die Frage ist, welche Methode wird eine bessere Leistung(weniger Berechnung)?
- Ich denke, das answers.unity3d.com/index.html ist ein besserer Ort, um Antworten zu finden auf deine Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurz, Methode 1, nicht dobut darüber.
Ich nehme an, dass Sie wollen, haben viele Spieler (sagen wir N), und viele Kugeln (sagen wir M). Methode 2 muss der test alle Kugeln vs alle Spieler, die bei der Ausführung Ihrer Distanz-test N*M-mal. Auf der anderen Seite, können Sie die relais, die die Physik-engine optimiert die Prüfung durch die räumliche Unterteilung Techniken (Tests nur gegen "in der Nähe" von Objekten).
Aber im Hinterkopf haben, dass Sie die richtige Methode zu verwenden, hängt auch von der Geschwindigkeit Ihrer Kugel, während Sie mit einem collider oder Kontrolle der Entfernung ok ist mit ziemlich langsamen Kugel (dh. Metal Slug-Kugeln), Sie haben Probleme mit einer schnellen Kugel (dh. fast wie eine echte Kugel), zwei psossible Lösungen sind zu spielen, ein bisschen mit Project Settings->Physik; oder, nur ein Physcis.Raycast (), um das Objekt, mit dem te Kugel schlägt in sofort.
Ihre Frage zu beantworten, die-Beschleunigern würde ich sagen, sind der bessere Weg zu gehen -, Physik-Erkennung sind ein wenig mehr optimiert als die überprüfung JEDER frame für eine Entfernung Kollision.
Aber dies hängt auch von der Anzahl der Objekte, die sind gonna behandelt werden, können Sie den profiler einsetzen, um zu sehen, wo es verlangsamt, und schalten Sie Ihren code ein, falls erforderlich.
Auch dieser Artikel könnte helfen: http://technology.blurst.com/unity-physics-trigger-collider-examples/
Meiner Erfahrung würde ich sagen, erkennen collider ist schneller und besser, in jedem Fall sind Sie mit unity Physik und add-on collider Methode, um Ihre Tasche nicht die Leistung verringern