MCPcopy Create free account
hub / github.com/esengine/esengine / handleStop

Function handleStop

packages/editor-app/src/components/Viewport.tsx:1406–1435  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1404 };
1405
1406 const handleStop = async () => {
1407 setPlayState('stopped');
1408 engine.stop();
1409
1410 // 重置 RuntimeSceneManager 状态(但保留实例以便下次 Play 复用)
1411 // Reset RuntimeSceneManager state (but keep instance for next Play reuse)
1412 if (runtimeSceneManagerRef.current) {
1413 const GlobalSceneManagerKey = Symbol.for('@esengine/service:runtimeSceneManager');
1414 if (Core.services.isRegistered(GlobalSceneManagerKey)) {
1415 Core.services.unregister(GlobalSceneManagerKey);
1416 }
1417 // 调用 reset() 而不是 dispose(),保留 sceneLoader 以便复用
1418 // Call reset() instead of dispose(), keep sceneLoader for reuse
1419 runtimeSceneManagerRef.current.reset();
1420 // 注意:不设置 ref 为 null,保留实例
1421 // Note: Don't set ref to null, keep the instance
1422 console.log('[Viewport] RuntimeSceneManager reset (instance kept for reuse)');
1423 }
1424
1425 // Restore scene snapshot
1426 await EngineService.getInstance().restoreSceneSnapshot();
1427 // Restore editor camera state
1428 setCamera2DOffset({ x: editorCameraRef.current.x, y: editorCameraRef.current.y });
1429 setCamera2DZoom(editorCameraRef.current.zoom);
1430 // Restore editor mode (restores grid, gizmos, axis indicator based on settings)
1431 // 恢复编辑器模式(根据设置恢复网格、gizmos、坐标轴指示器)
1432 EngineService.getInstance().setEditorMode(true);
1433 // Restore editor default background color
1434 EngineService.getInstance().setClearColor(0.1, 0.1, 0.12, 1.0);
1435 };
1436
1437 const handleReset = () => {
1438 // Reset camera to origin without stopping playback

Callers

nothing calls this directly

Calls 9

stopMethod · 0.65
unregisterMethod · 0.65
resetMethod · 0.65
setClearColorMethod · 0.65
isRegisteredMethod · 0.45
logMethod · 0.45
restoreSceneSnapshotMethod · 0.45
getInstanceMethod · 0.45
setEditorModeMethod · 0.45

Tested by

no test coverage detected