瀏覽代碼

Set the VoxelGIData path before saving, otherwise the ResourceSave will revert it to an empty String

(cherry picked from commit c34d5627fb4718ad8f89cafa552a9e6658074eb9)
MineBill 2 年之前
父節點
當前提交
4ec566fae2
共有 1 個文件被更改,包括 7 次插入2 次删除
  1. 7 2
      editor/plugins/voxel_gi_editor_plugin.cpp

+ 7 - 2
editor/plugins/voxel_gi_editor_plugin.cpp

@@ -166,8 +166,13 @@ void VoxelGIEditorPlugin::_voxel_gi_save_path_and_bake(const String &p_path) {
 	probe_file->hide();
 	if (voxel_gi) {
 		voxel_gi->bake();
-		ERR_FAIL_COND(voxel_gi->get_probe_data().is_null());
-		ResourceSaver::save(voxel_gi->get_probe_data(), p_path, ResourceSaver::FLAG_CHANGE_PATH);
+		// Ensure the VoxelGIData is always saved to an external resource.
+		// This avoids bloating the scene file with large binary data,
+		// which would be serialized as Base64 if the scene is a `.tscn` file.
+		Ref<VoxelGIData> voxel_gi_data = voxel_gi->get_probe_data();
+		ERR_FAIL_COND(voxel_gi_data.is_null());
+		voxel_gi_data->set_path(p_path);
+		ResourceSaver::save(voxel_gi_data, p_path, ResourceSaver::FLAG_CHANGE_PATH);
 	}
 }