Betriebssystem oder Gerät - Godot-Version:
Godot 2.1/HEAD, aber Master scheint auch etwas betroffen zu sein
Fehlerbeschreibung:
Beim Programmieren einiger Dinge für ein (Nicht-FOSS-)Spiel habe ich eine meiner Methoden als has_point
in einem CanvasItem
vererbenden Skript bezeichnet, das einigen Steuerelementen zugewiesen wurde. Ich habe es bis return true
, da das von anderen Skripten überschrieben werden sollte... Und dann, plötzlich, fingen alle Kontrollen mit diesem Skript an, alle Klicks zu bekommen :lacht:
Ich beschloss, die Dokumente zu durchsuchen, da ich vermutete, dass so etwas passiert sein könnte, aber Control::has_point
wurde nicht aufgeführt, da es überhaupt nicht gebunden ist.
Beachten Sie, dass die has_point
Implementierung auf scene/gui/control.cpp:572-588
die Skriptmethode aufruft.
Schritte zum Reproduzieren:
extends Control
func has_point(point):
return true
Link zum Minimalbeispielprojekt: Teilweise in Eile hier, so vielleicht später auf Anfrage.
Wie repariert man:
scene/gui/control.cpp:2516
BIND_VMETHOD
Makro hinzu, wie hier: scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
Control::has_point(Vector2 point)
Das möchte ich als ersten Beitrag ausprobieren.
Entfernen Sie auch das reguläre bind_method
?(auch bekannt als #7960)
Bin mir da aber nicht sicher
Edit: Ich sollte lesen lernen. äh.
Behoben durch #8023.
Hilfreichster Kommentar
Das möchte ich als ersten Beitrag ausprobieren.