オペレーティングシステムまたはデバイス-Godotバージョン:
Godot 2.1 / HEADですが、マスターも多少影響を受けているようです
問題の説明:
(非FOSS)ゲーム用にいくつかのものをコーディングしているときに、いくつかのコントロールに割り当てられたCanvasItem
継承スクリプトで、メソッドの1つにhas_point
という名前を付けました。 return true
に到達しました。これは、他のスクリプトによって上書きされるためです...そして、突然、そのスクリプトのすべてのコントロールがすべてのクリックを取得し始めました:laughing:
このようなことが起こったのではないかと思ったので、ドキュメントを検索することにしましたが、 Control::has_point
はまったくバインドされていないため、リストされていません。
scene/gui/control.cpp:572-588
のhas_point
実装は、scriptメソッドを呼び出すことに注意してください。
再現する手順:
extends Control
func has_point(point):
return true
最小限のサンプルプロジェクトへのリンク:ここでは部分的に急いでいるので、後でリクエストに応じてください。
直し方:
scene/gui/control.cpp:2516
BIND_VMETHOD
マクロを追加します: scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
Control::has_point(Vector2 point)
リストされていることを確認しますこれを最初の貢献としてやってみたいと思います。
また、通常の bind_method
削除しますか?(別名#7960)
それについてはよくわかりませんが
編集:私は読むことを学ぶ必要があります。 当たり前。
#8023で修正。
最も参考になるコメント
これを最初の貢献としてやってみたいと思います。