如何在 Godot 中的另一个节点中设置函数?

How do I set a function in another node in Godot?

提问人:Samuel Ammonius STUDENT 提问时间:9/25/2023 最后编辑:Samuel Ammonius STUDENT 更新时间:9/26/2023 访问量:59

问:

我有一个用父节点的脚本编写的自定义集成器,我需要将其放在多个子节点上。

我读了 Godot 对 GDScript 的介绍,以及它对鸭子打字的看法。据我所知,我认为我可以这样做:

child_obj._integrate_forces = my_integrator

但这会冻结应用程序并给出“节点中不存在属性”错误。正确的方法是什么?

Godot GDScript 鸭子打字

评论

0赞 Samuel Ammonius STUDENT 9/25/2023
我将保持这个问题的开放性,但我通过在每个子中都有一个调用父函数的脚本来解决它。

答:

0赞 Theraot 9/26/2023 #1

如何在 Godot 中的另一个节点中设置函数?

你不能。

我不知道你是怎么从鸭子打字中推断出来的,但没有......GDScript 对象确实有方法,而不仅仅是碰巧有函数的属性(例如,在 JavaScript 中可以找到函数)。

你可以把你的方法放在一个单独的脚本中(也许把它设为一个,或者使脚本成为一个自动加载,或者一些你知道将始终可用的节点 - 这就是你所做的)并调用它。static func

或者,如果有意义,可以使用继承。