Wann und wie vermeidet man die Verwendung von Nodes für alles

Nodes sind einfach zu erstellen, aber selbst sie haben ihre Grenzen. Ein Projekt kann zehntausende von Nodes haben, die alle irgendetwas tun. Je komplexer ihr Verhalten ist, desto größer ist die Belastung, da jeder einzelne zur Leistung eines Projekts beiträgt.

Godot bietet leichtere Objekte zum Erstellen von APIs, die von Nodes verwendet werden. Behalten Sie dies als Möglichkeit im Hinterkopf, wenn Sie festlegen wie Sie die Funktionen Ihres Projekts erstellen möchten.

  1. Objekt: Das ultimative Lightweight-Objekt, das ursprüngliche Objekt, muss manuell verwaltet werden. Trotzdem ist es nicht allzu schwierig, eigene benutzerdefinierte Datenstrukturen zu erstellen, selbst Nodestrukturen, die auch leichter sind als die Node Klasse.

    • Beispiel: Siehe das Node Tree. Es unterstützt ein hohes Maß an Anpassung für ein Inhaltsverzeichnis mit einer beliebigen Anzahl von Zeilen und Spalten. Die Daten, die zum Generieren der Visualisierung verwendet werden, sind tatsächlich ein Baum von TreeItem Objekten.

    • Advantages: Simplifying one's API to smaller scoped objects helps improve its accessibility and improve iteration time. Rather than working with the entire Node library, one creates an abbreviated set of Objects from which a node can generate and manage the appropriate sub-nodes.

    Bemerkung

    Man sollte vorsichtig damit umgehen. Man kann ein Objekt in einer Variablen speichern, aber diese Referenzen können ohne Warnung ungültig werden. Wenn der Ersteller des Objekts beispielsweise beschließt, es aus dem Nichts zu löschen, wird beim nächsten Zugriff ein Fehlerstatus ausgelöst.

  2. Referenz: Nur etwas komplexer als ein Objekt. Sie verfolgen Verweise auf sich selbst und löschen den geladenen Speicher nur, wenn keine weiteren Verweise auf sich selbst vorhanden sind. Diese sind in den meisten Fällen nützlich, in denen Daten in einer benutzerdefinierten Klasse benötigt werden.

    • Beispiel: Siehe das File Objekt. Es funktioniert genau wie ein normales Objekt, nur dass man es nicht selbst löschen muss.

    • Vorteile: die Gleichen wie das Objekt.

  3. Ressource: Nur geringfügig komplexer als Referenz. Sie haben die grundlegende Fähigkeit, ihre Objekteigenschaften in / aus Godot-Ressourcendateien zu serialisieren / deserialisieren (d. H. Zu speichern und zu laden).

    • Beispiel: Skripte, PackedScene (für Szenendateien) und andere Typen wie die folgenden AudioEffect Klassen. Jedes dieser Elemente kann gespeichert und geladen werden, daher erweitern sie sich von Ressource.

    • Vorteile: Es wurde bereits viel über die Vorteile von Ressource gegenüber herkömmlichen Datenspeichermethoden gesagt. Im Zusammenhang mit der Verwendung von Ressourcen gegenüber Nodes liegt ihr Hauptvorteil jedoch in der Inspektorkompatibilität. Sie sind zwar fast so leicht wie Objekte / Referenzen, können jedoch Eigenschaften im Inspektor anzeigen und exportieren. Dies ermöglicht es ihnen, einen Zweck ähnlich wie Unter-Nodes in Bezug auf die Benutzerfreundlichkeit zu erfüllen, aber auch die Leistung zu verbessern, wenn man plant, viele solcher Ressourcen / Nodes in ihren Szenen zu haben.