NavMesh auf Krücken - kleine Tricks

    Ich spiele weiterhin in Unity3d.
    In diesem Artikel werde ich versuchen zu erklären, wie Sie mit Hilfe einer schmutzigen Krücke die statische Komponente von NavMesh umgehen können.

    Um die Bewegungen der Charaktere und des Spielers zu steuern, bietet die Engine ein vielseitiges und ziemlich leistungsfähiges Tool - NavMesh. Tatsächlich ist dies eine zweidimensionale Figur - ein Raster, das sich über das Gelände erstreckt und es Ihnen ermöglicht, die Bewegungen des NavMeshAgent-Agenten zu handhaben.

    Bild

    Es gibt jedoch ein kleines Problem. Im Großen und Ganzen ist NavMesh statisch und wird bei der Entwicklung im Editor berechnet.
    Stellen Sie sich diese Situation vor: Wir haben ein Schiff, das sanft auf den Wellen schwankt, und einen mutigen Kapitän, der ziellos über das Deck wandert.

    Bild

    Das Problem ist, dass wir NavMesh nicht in der Stirn auf das Schiffsmodell ziehen können. Das Modell ist dynamisch, das Netz ist statisch.

    Ich habe die folgende Lösung gefunden:
    - Schalten Sie den Schiffs-Collider aus (die für die Modellphysik verantwortliche Komponente).
    - Erstellen Sie mehrere Boxen, die das Deck simulieren.
    - Generieren Sie NavMesh für diese Boxen.
    - Deaktivieren Sie die für das Rendern der Boxen verantwortlichen Komponenten. mach sie unsichtbar

    Voila - der Kapitän schlägt bekanntlich auf NavMesh, das sich über die unsichtbaren Kisten erstreckt. Bei geringen Aufbauten fällt das Schiff kaum auf, dass es etwas unter Deck „durchfällt“.

    Der Umfang der Krücke ist ziemlich breit. Sie können zum Beispiel ein Mesh für Vögel / Drachen bauen, Levitation simulieren, unsichtbare Brücken bauen usw.

    Es gibt natürlich zusätzliche Tools - NavMeshObstacles, d.h. dynamische Hindernisse, aber es gibt genug Probleme mit ihnen.

    Wenn jemand Ideen hat, wie er es besser machen kann, teilen Sie uns bitte Ihre Erfahrungen mit.

    Jetzt auch beliebt: