标签:编辑器
-
导入管线:EditorFileSystem 的扫描与 .godot/imported 目录
Godot 运行时不直接读 PNG/WAV,而是读 .godot/imported 里的转换产物。这篇讲 EditorFileSystem 的全量与增量扫描、.import 文件的字段含义,以及改一张贴图到底触发了哪些连锁反应。
-
多 SceneTree 的可行性:为什么插件里不能随便 new MainLoop
SceneTree 表面上是可替换的 MainLoop,但渲染、输入、视口、单例注册全围绕"一棵树"假设搭建;要第二棵树,官方给的答案是 SubViewport 而不是第二个 SceneTree。
-
大工程资源扫描优化:EditorFileSystem 缓存与冷启动时间
万级资源工程打开编辑器为什么要等几分钟?答案在 .godot/filesystem_cache。这篇讲全量扫描与增量扫描的成本模型、导入缓存的命中条件,以及把冷启动时间压下来的几个开关。
-
ScriptServer 与脚本类注册:`class_name` 是怎么被全局看见的
写 `class_name Foo` 之后,整个工程任何脚本都能直接写 Foo.new()——背后是 ScriptServer 的全局类注册表。这篇讲注册时机、缓存文件格式,以及它和 ClassDB 的边界。
-
脚本热重载:编辑器里按保存后哪些状态丢了
运行中改脚本是编辑器最顺手也最容易踩坑的能力:GDScript 的热重载靠"新编译产物替换引用",C# 靠 collectible AssemblyLoadContext。两种路线下,正在运行的实例、静态变量、signal 连接各有不同的保留规则。
-
@tool 脚本与编辑器内执行:同一份代码跑在两个进程模型里
加了 @tool 的脚本会在编辑器进程里被实例化和执行,和游戏运行时共享同一个 SceneTree。这篇讲 tool 标记怎么改变脚本的生命周期、编辑器进程的崩溃隔离真相,以及 safe mode 的存在原因。