首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在工具模式脚本重新加载时调用函数

在工具模式脚本重新加载时调用函数
EN

Stack Overflow用户
提问于 2022-02-13 08:52:41
回答 1查看 374关注 0票数 0

如何在每次加载或重新加载脚本时调用函数?

代码语言:javascript
复制
tool

func _reload():
    print("Changes have been made and saved! Script has been reloaded")

func _load():
    print("Project was just opened! Script has been loaded")
EN

回答 1

Stack Overflow用户

发布于 2022-02-13 10:13:42

我不知道你所说的重新加载是什么意思(或者为什么它是一个问题),但它可能就是其中之一:

当您向场景树添加一个

  • (或者当您启用一个插件,它将EditorPlugin添加到编辑器的场景树中),或者当它被加载时(在加载项目时加载所有插件),_enter_tree中的代码将运行。类似地,当删除它(或者当插件被禁用时),_exit_tree中的代码将运行。请注意,对于手动运行的(EditorScript),tool脚本,这些脚本不起作用。所以做一个EditorPlugin__).

(或Node )

  • 有一个信号,它将在对象的脚本更改时发出通知。它被恰当地命名为"script_changed"。因此,如果要处理修改工具脚本并因此重新加载的情况,可以连接到该信号。您还可能希望利用_init,这是戈多调用的第一个虚拟方法(在Node上,您也可以使用_enter_tree_ready)。在新脚本中调用"script_changed"之前发出信号

如果要处理修改_set.属性时的

  • (由于您提到“已更改”),则必须使用setter(与setget一起),或者可以在Node中截取这些属性

既然您提到“项目刚刚打开”,我认为您想要制作一个EditorPlugin,然后可以使用_enter_tree_exit_tree

在保存编辑器上当前编辑的场景时,我还没有找到获得通知的方法。但是,保存场景并不意味着tool脚本无论如何都会被加载或重新加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71099182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档