热重载资源
可参考的官方例子:
hot_asset_reloading
,
[hot_shader_reloading
][example::hot_shader_reloading].
在运行时,如果你修改了已被加载到游戏中的资源的文件(通过 AssetServer
),Bevy 会监测到并自动重新加载该资源。这对于快速迭代非常有用。你可以在游戏运行的时候编辑你的资源,并在游戏中即时看到它的变化。
并非所有的[文件格式][buildins::file-formats]和使用情况都能得到同样的支持。典型的资源类型,如纹理和图片应该没有问题,但复杂的 GLTF 或场景文件,或涉及自定义逻辑的资源则可能不会被即时加载刷新。
如果你需要某个有自定义逻辑的资源也能被热重载,你可以在一个系统中使用 AssetEvent
事件([了解更多][cb::assetevent])来实现它。
热重载是一个可选择项,并且必须被启用才能工作。你可以在一个初始化系统中来启用它:
asset_server.watch_for_changes().unwrap();
着色器 Shaders
Bevy 也支持着色器的热重载。你可以编辑你的自定义着色器代码并立即看到变化。这只有在你通过 bevy 资源系统(通过 AssetServer
)加载你的着色器时才有效。参见[官方示例][example::hot_shader_reloading]。