Zum Hauptinhalt springen

Fehlersuche

Die meisten Probleme hier haben eine von wenigen üblichen Ursachen. Wenn sich etwas nicht wie erwartet verhält, steht es mit guter Wahrscheinlichkeit auf dieser Seite. Fangen Sie oben an — die ersten beiden Einträge decken das meiste ab.

„In der Vorschau geht es, im Editor nicht"

Das ist so vorgesehen. Der Editor führt Ihre Logik nicht aus — keine Skripte, keine Patches, keine Physik, keine Timer, keine Näherungsauslöser. Er zeichnet die Szene und lässt sie bearbeiten.

Das ist Absicht: Eine Animation, die während der Arbeit läuft, würde Ihnen die Kontrolle streitig machen, und ein Timer würde Änderungen in Ihr Projekt schreiben. Verhalten prüft man in Preview.

„Mein Skript startet nicht"

Gehen Sie die Liste durch:

  1. das Objekt ist aktiviert, ebenso alles darüber in der Hierarchie;
  2. seine Szene ist aktiv — in einem AR-Projekt heißt das, der Marker wurde erkannt;
  3. die Skript-Komponente ist aktiviert;
  4. Sie sind in Preview oder einer Veröffentlichung, nicht im Editor.

Ein Skript startet außerdem neu, wenn Sie eine seiner Einstellungen im Inspektor ändern — das sieht schnell nach Absturz aus.

„Ich ändere eine Komponente und sie springt zurück"

Zwei wahrscheinliche Ursachen.

Ein Zustand ist aktiv. Solange ein Zustand ausgewählt ist, werden Ihre Änderungen in diesen Zustand geschrieben. Beim nächsten Wechsel wird der Schnappschuss wiederhergestellt. Wenn Sie das Objekt selbst ändern wollten, heben Sie die Auswahl des Zustands auf.

Etwas besitzt diese Eigenschaft in jedem Bild. Eine Timeline-Spur, ein Physikkörper oder ein Look-at schreiben fortlaufend und überschreiben Sie. Siehe nächster Punkt.

„Meine Animation kämpft mit einer anderen"

Zwei Mechanismen schreiben in dasselbe Objekt. Die Timeline schreibt jedes Bild und gewinnt immer gegen einen Übergang.

Wählen Sie einen Mechanismus pro Objekt. Brauchen Sie einen Übergang auf etwas, das die Timeline steuert, verlagern Sie ihn auf ein Kindobjekt oder animieren Sie ihn in der Timeline. → Animation

„Mein Materialwechsel aus dem Skript tut nichts"

Ein Material ist eine Liste von Slots, also schreibt material.update({ color }) ein Feld, das es auf dieser Ebene nicht gibt. Schreiben Sie den Slot:

material.update({
materials: [{ ...material.$data.materials[0], color: '#ff0000' }],
});

Dasselbe gilt für jeden verschachtelten Wert: update ersetzt, was Sie übergeben — übernehmen Sie also, was erhalten bleiben soll.

„Mein Objekt fällt durch den Boden" / „das Modell ist nicht fest"

Ein importiertes Modell hat keine Kollisionsform, bis Sie ihm einen Collider geben. Fügen Sie einen hinzu — eine Box oder eine Kapsel passt fast immer.

Prüfen Sie auch den Boden selbst: Er braucht einen Starrkörper und einen Collider. Bloße dekorative Geometrie hält nichts auf, man geht hindurch. → Physik

„Ich setze die Position eines Physikobjekts und es ignoriert mich"

Die Physik besitzt die Position eines dynamischen Körpers und überschreibt sie im nächsten Schritt. Nutzen Sie teleport zum Platzieren und Impulse oder Kräfte zum Bewegen.

„Meine Oberfläche fehlt im Screenshot"

Karten werden vor der 3D-Ansicht gezeichnet, und eine Aufnahme der 3D-Ansicht enthält sie nicht. Prüfen Sie die Oberfläche in der Vorschau.

„Die Rotationswerte stimmen nicht überein"

Überall, wo Sie sie sehen — Inspektor, Ports von Patch-Knoten —, sind es Grad. Werte, die aus einem Skript gelesen oder geschrieben werden, sind Bogenmaß. Rechnen Sie an der Grenze um.

„Ich drücke die Taste und nichts passiert"

Prüfen Sie die Schreibweise: Auslöser heißen on-click, Schritte play_animation. Ein Tippfehler erzeugt keinen Fehler, er passt einfach nie.

Verweist das Ereignis auf eine Tastenbelegung des Projekts, prüfen Sie, ob es sie noch gibt: Ein Verweis auf eine gelöschte Belegung fällt nicht auf „beliebige Taste" zurück, er löst gar nicht mehr aus.

„Es feuert zweimal"

Derselbe Auslöser wird an zwei Stellen behandelt — in einem Ereignis und in einem Skript oder in einem Ereignis und einem Patch. Entscheiden Sie sich für eines. → Ereignisse

„Mein Objekt erscheint verspätet"

Ressourcen laden, während die Szene bereits läuft, deshalb treffen Modelle, Texturen und Text kurz nach dem Öffnen ein. Für Inhalte, die im ersten Bild da sein müssen, hängen Sie nicht von einem großen Download ab oder halten Sie die Szene verborgen, bis alles da ist.

„Es gibt kein Ereignis ‚Animation beendet'"

Es existiert in keinem der Mechanismen. Nutzen Sie einen Warteschritt gleicher Länge oder zählen Sie die Zeit selbst im Skript.

„Mein Rückgängig hat die Änderung eines Kollegen entfernt"

Der Verlauf ist Ihr eigener und streng linear — er weiß nicht, dass jemand dazwischen dasselbe Objekt geändert hat. In einer gemeinsamen Szene korrigiert man besser vorwärts, als sich zurückzuarbeiten.


Immer noch festgefahren?

Passt nichts davon, steht die Antwort meist in den Referenztabellen — jede Einstellung, aus der Engine erzeugt — oder in Objekte und Szenen, wo das Modell erklärt wird, auf dem alles Übrige aufbaut.