Zum Hauptinhalt springen

Fehlerbehebung

Etwas funktioniert nicht? Suchen Sie Ihr Problem unten. Beginnen Sie mit den ersten beiden Punkten: Sie sind die Ursache der meisten Probleme.

In der Vorschau klappt es, im Editor nicht​

Das ist so gewollt. Der Editor führt Ihre Logik nicht aus: Skripte, Patches, Physik, Timer und Näherungs-Trigger sind alle aus. Der Editor zeigt und bearbeitet nur Ihre Szene.

Das ist Absicht. Eine Animation, die beim Bearbeiten läuft, wäre Ihnen im Weg, und ein Timer würde Ihr Projekt verändern. Öffnen Sie die Vorschau, um Ihr Projekt in Aktion zu sehen.

Mein Skript läuft nicht​

Prüfen Sie der Reihe nach:

  1. Das Objekt ist aktiviert, und ebenso jedes Objekt darüber in der Hierarchie.
  2. Seine Szene ist aktiv. In einer AR-Szene heißt das: Der Marker wurde erkannt.
  3. Die Skript-Komponente ist aktiviert.
  4. Sie sind in der Vorschau oder in einem veröffentlichten Projekt, nicht im Editor.

Ein Skript startet neu, wenn Sie eine seiner Eigenschaften im Inspektor ändern. Eine versehentliche Änderung kann also wie ein Absturz aussehen.

Meine Änderung springt zurück​

Dafür gibt es zwei häufige Ursachen:

  • Ein Zustand ist aktiv. Solange ein Zustand ausgewählt ist, werden Ihre Änderungen an diesem Objekt im Zustand gespeichert. Wenn Sie den Zustand wechseln, kommen die gespeicherten Werte zurück. Um das Objekt selbst zu ändern, heben Sie zuerst die Auswahl des Zustands auf.
  • Etwas anderes setzt diesen Wert in jedem Frame. Ein Balken auf der Zeitleiste, ein Physikkörper oder eine Komponente Ausrichten schreiben ständig in das Objekt und überschreiben Ihre Änderung. Siehe den nächsten Abschnitt.

Zwei Animationen kommen sich in die Quere​

Zwei Dinge ändern dasselbe Objekt. Die Zeitleiste schreibt in jedem Frame, deshalb setzt sie sich immer gegen einen Übergang durch.

Nutzen Sie pro Objekt nur eines von beiden. Brauchen Sie einen Übergang an etwas, das die Zeitleiste steuert, legen Sie den Übergang auf ein Kindobjekt oder animieren Sie ihn stattdessen auf der Zeitleiste. Siehe Animation.

Eine Materialänderung per Skript bewirkt nichts​

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

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

Das gilt für jeden verschachtelten Wert: update ersetzt, was Sie übergeben. Kopieren Sie also die Werte mit hinein, die erhalten bleiben sollen.

Mein Objekt fällt durch den Boden​

Ein importiertes 3D-Modell ist erst fest, wenn Sie einen Collider hinzufügen. Fügen Sie einen hinzu – eine Box oder eine Kapsel passt meistens.

Prüfen Sie auch, ob der Boden einen Starrkörper und einen Collider hat. Geometrie ohne beides ist reine Dekoration, und Dinge fallen hindurch. Siehe Physik.

Ein Physikobjekt ignoriert die gesetzte Position​

Die Physik steuert die Position eines dynamischen Körpers und setzt sie bei jedem Schritt neu. Um das Objekt zu platzieren, nutzen Sie teleport. Um es zu bewegen, nutzen Sie Impulse oder Kräfte.

Meine UI fehlt auf einem Screenshot​

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

Rotationswerte passen nicht zusammen​

Alles, was Sie sehen – der Inspektor, die Ports von Patch-Nodes –, zeigt Grad. Skripte lesen und schreiben Radiant. Rechnen Sie den Wert um, wenn Sie ihn zwischen beiden weitergeben.

Beim Drücken der Taste passiert nichts​

Prüfen Sie, wie der Name geschrieben ist: Trigger verwenden Bindestriche (on-click), Schritte Unterstriche (play_animation). Ein falsch geschriebener Name zeigt keinen Fehler. Er passt einfach nie.

Wenn das Ereignis eine Tastenbelegung des Projekts nutzt, prüfen Sie, ob es diese Belegung noch gibt. Wird eine Belegung entfernt, löst das Ereignis nicht mehr aus. Es fällt nicht auf „beliebige Taste“ zurück.

Es wird doppelt ausgelöst​

Derselbe Trigger wird an zwei Stellen verarbeitet: in einem Ereignis und einem Skript oder in einem Ereignis und einem Patch. Behalten Sie nur eine davon. Siehe Ereignisse.

Ein Objekt erscheint einen Moment zu spät​

Ressourcen laden, während die Szene schon läuft. Modelle, Texturen und Texte können also einen Moment nach dem Öffnen der Szene ankommen. Für Inhalte, die ab dem ersten Frame da sein müssen, vermeiden Sie große Downloads oder halten Sie die Szene ausgeblendet, bis sie bereit ist.

Es gibt kein Ereignis „Animation beendet“​

Keines der Animationswerkzeuge hat eines. Nutzen Sie einen Warteschritt mit derselben Länge oder messen Sie die Zeit in einem Skript.

Mein Rückgängig hat die Änderung einer anderen Person entfernt​

Ihr Verlauf zum Rückgängigmachen gehört nur Ihnen und geht streng der Reihe nach zurück. Er weiß nicht, dass jemand anderes zwischendurch dasselbe Objekt geändert hat. Beheben Sie einen Fehler in einer gemeinsamen Szene lieber mit einer neuen Änderung, statt schrittweise zurückzugehen.

Immer noch nicht gelöst?​

Auf diesen beiden Seiten finden Sie am ehesten Ihre Antwort:

  • Referenz – jede Einstellung, immer aktuell.
  • Objekte und Szenen – wie ein Projekt aufgebaut ist. Der Rest dieses Abschnitts baut darauf auf.