Sistema operativo o dispositivo - versión Godot:
Godot 2.1 / HEAD, pero parece que el maestro también está algo afectado
Descripcion del problema:
Mientras codificaba algunas cosas para un juego (no FOSS), nombré uno de mis métodos como has_point
en un script de herencia CanvasItem
que se asignó a algunos controles. Llegué a return true
, ya que otros scripts lo anularían ... Y luego, de repente, todos los controles con ese script empezaron a captar todos los clics: risas:
Decidí buscar en los documentos, ya que sospechaba que podría haber sucedido algo como esto, pero Control::has_point
no estaba en la lista, ya que no está vinculado en absoluto.
Tenga en cuenta que la implementación has_point
en scene/gui/control.cpp:572-588
llama al método de script.
Pasos para reproducir:
extends Control
func has_point(point):
return true
Enlace a un proyecto de ejemplo mínimo: en parte con prisa aquí, por lo que tal vez más tarde a pedido.
Como arreglar:
scene/gui/control.cpp:2516
BIND_VMETHOD
adecuada, como aquí: scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
Control::has_point(Vector2 point)
Me gustaría probar esto como mi primera contribución.
También eliminar el bind_method
regular?(también conocido como # 7960)
Aunque no estoy seguro de eso
Editar: debería aprender a leer. duh.
Corregido por # 8023.
Comentario más útil
Me gustaría probar esto como mi primera contribución.