Unify editor scene edit history

This commit is contained in:
2026-04-29 17:30:44 +08:00
parent 2e50c90167
commit 4a125cbe7f
8 changed files with 708 additions and 225 deletions

View File

@@ -2196,6 +2196,32 @@ public:
return ResolvePrimaryScene(m_sceneManager);
}
std::string CaptureActiveSceneSnapshot() const override {
Scene* scene = ResolvePrimaryScene(m_sceneManager);
return scene != nullptr
? scene->SerializeToString()
: std::string();
}
bool RestoreActiveSceneSnapshot(const std::string& snapshot) override {
if (snapshot.empty()) {
return false;
}
Scene* scene = ResolvePrimaryScene(m_sceneManager);
if (scene == nullptr) {
return false;
}
{
ResourceManager::ScopedDeferredSceneLoad deferredSceneLoad(
m_resourceManager);
scene->DeserializeFromString(snapshot);
}
m_sceneManager.SetActiveScene(scene);
return true;
}
std::unique_ptr<EditorScenePlaySession> BeginPlaySession() override {
Scene* editScene = ResolvePrimaryScene(m_sceneManager);
if (editScene == nullptr) {