老铁们,如何失活节点和脚本啊?
godot吧
全部回复
仅看楼主
level 1
冬夜饮雪水
楼主
类似Unity的这个功能:如图
2026年03月17日 11点03分
1
level 9
向日葵sf
修改visible和process属性
2026年03月17日 12点03分
2
冬夜饮雪水
不行,代码逻辑依然执行
2026年03月17日 12点03分
KWY闯天涯
@冬夜饮雪水
你代码写哪了,一般改完,除开_ready,基本就和unity一样了
2026年03月18日 03点03分
KWY闯天涯
@冬夜饮雪水
如果是其他活动对象调用失活对象中的函数,是可以正常调用的,这在unity中也是一样。
2026年03月18日 03点03分
冬夜饮雪水
@KWY闯天涯
代码就写_ready下面啊。你们不写吗?
2026年03月21日 23点03分
level 1
冬夜饮雪水
楼主
这样也不行
2026年03月17日 12点03分
3
雷伊盖亚0
这个disable哪部分不符合要求,节点的ready状态?
2026年03月18日 04点03分
冬夜饮雪水
@雷伊盖亚0
挂载的脚本依然运行,这不符合要求。
2026年03月18日 08点03分
level 7
o(哈ω哈)o
set_script(null)同时设置节点processmode为disabled,需要恢复时重新挂载脚本,复原process。应该没有其他内置功能可以实现你的要求了
2026年03月17日 12点03分
4
level 1
萤火虫没有明天
在脚本里增加判断,判断脚本挂载的物体本身的visible是否可见,不可见不执行。
2026年03月17日 15点03分
5
冬夜饮雪水
你是说Unity的基本功能在Godot需要用代码实现是嘛?
2026年03月17日 23点03分
level 4
shxsyb
我也想问,有时不想删掉就是测试时,临时去掉一下。
2026年03月18日 00点03分
6
level 8
-诺里-
改process_mode好像,但我也不确定是否完全禁用代码逻辑,实在不行就移除脚本,节点本身的渲染效果什么的可以改visible。说起来还真有个不影响编辑器预览但运行时完全失效的办法,就是勾选“加载为占位符”,但是这个功能只能用于子场景,实际效果就是运行游戏时不创建子场景而且创建一个占位符节点,并且可以通过这个占位符节点生成与之对应的子场景
2026年03月18日 01点03分
7
level 1
文明宿舍Cr
无语,和你说不下去,典型的unity思维
好吧不开玩笑,GODOT就是没有禁用节点这种方便操作,
无论是移除节点,还是禁用处理函数,隐藏显示,都不是省事的操作
移除节点有个比较严重的bug从3.x到现在都没修复。
但是这些问题,换个思路就能解决
2026年03月18日 06点03分
8
吧务
level 13
雷伊盖亚0
目前没有直接等价的方法,至于process mode的disable对于节点的进出节点树和ready无效
可见性需额外禁用
目前引擎的状态对于怎么实现这个节点的禁用还在拉扯
如果需要深入了解讨论状态可以看下面的两个提交和一个提案。
1、通过添加一个编辑器专用的标记实现相关pr提交,但两年了并没有被合并。
网页链接
2、通过添加节点激活功能及对应的生命周期方法
网页链接
提案实现节点暂存支持
github.com/godotengine/godot-proposals/issues/10212
2026年03月18日 10点03分
10
level 1
稻香9527
直接
Hide();
SetProcess( false );
完事儿
2026年03月22日 03点03分
13
冬夜饮雪水
啊?写在ready下面第一行吗? 那有五个节点都有这个脚本,我希望其中三个失活,两个激活,该怎么办? 嗯,可能按上面某位大佬说的,获取Godot节点旁边的眼睛,打开就启用脚本,关闭就不器用脚本。怎么获取眼睛的设置呢?
2026年03月25日 16点03分
稻香9527
@冬夜饮雪水
有两种方式:第一种方式,你在根节点上挂一个脚本。在这个脚本中的_Ready()方法中分别取得这5个节点。再用Hide();和SetProcess( false );隐藏起这5个节点就可以了。
2026年03月25日 16点03分
稻香9527
@冬夜饮雪水
另一种方式和第一种类似,只是,不是得到这5个节点。而是得到这5个节点上你挂的那5个脚本,你先在挂的这5个脚本中设一个公共型的bool变量,通过这个变量控制是否处理_Process(double delta)中的代码。得到脚本后,改变这个变量的值达到控制的作用。
2026年03月25日 16点03分
稻香9527
@冬夜饮雪水
如果你脚本中的代码不是在_Process(double delta)中进行处理,就是你处理代码的地方分别加个bool变量判断就可以了。bool变量就起到开关的作用
2026年03月25日 16点03分
1