lima-city: Webhosting, Domains und Cloud
1 Pluspunkt 0 Minuspunkte

Ich habe eine Area3D mit einem ColissionShape3D und diesem Script:

extends Area3D

func _on_area_entered(node):
	print("on_area_entered:", node.name)

func _on_area_exited(node):
	print("on_area_exited:", node.name)

Aber die Funktionien werden nicht ausgelöst wenn ich in die Box laufe.

von  

2 Antworten

1 Pluspunkt 0 Minuspunkte

Die Signale "area_entered" bzw. "area_exited" werden ausgelöst wenn Area3D Objekte miteinander kollidieren. Wenn dein Player ein anderer Typ von Node ist (z.B CharacterBody3D o.ä) musst du die Funktionen "body_entered" bzw. "body_exited" wählen.

func _on_body_entered(body):
	print("on_body_entered:", body.name)

func _on_body_exited(body):
	print("on_body_exited:", body.name)
von (621 Punkte)  
Das wäre meine nächste Frage gewesen was der Unterschied dabei ist. Jetzt funktioniert es auch, danke!
0 Pluspunkte 0 Minuspunkte

Sind die entsprechenden Signale korrekt mit deinem Skript verbunden? Wähle den Node aus, der die Signale senden soll und überprüfe in der Registerkarte "Node" unter "Signals", ob die Signale "area_entered" und "area_exited" mit den Funktionen in deinem Skript verbunden sind. Mit einem Doppelklick auf das entsprechende Signal kannst du in einem Dialog die Funktion aus deinem Script wählen welche mit dem Signal verbunden werden soll.

von (716 Punkte)  
Die habe ich verlinkt.
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

13 Nutzer