diff --git a/src/app/babylon/controller/scene-manager.ts b/src/app/babylon/controller/scene-manager.ts index dab79dd..535da51 100644 --- a/src/app/babylon/controller/scene-manager.ts +++ b/src/app/babylon/controller/scene-manager.ts @@ -111,6 +111,10 @@ export class SceneManager { } //#endregion + dispose() { + SceneManager.instance = null; + } + //#region 摄像机 /** diff --git a/src/app/babylon/game.ts b/src/app/babylon/game.ts index ba9a346..c331dd7 100644 --- a/src/app/babylon/game.ts +++ b/src/app/babylon/game.ts @@ -1,5 +1,4 @@ import { Database, Engine, RenderingManager, Scene } from "@babylonjs/core"; -import { AdvancedDynamicTexture } from "@babylonjs/gui"; import { SceneManager } from "./controller/scene-manager"; import { LoginSatus } from "./controller/status/login-status"; @@ -11,7 +10,6 @@ export class Game { public canvas: HTMLCanvasElement; public engine: Engine; public scene: Scene; - public uiRoot: AdvancedDynamicTexture; static instance: Game; @@ -54,5 +52,13 @@ export class Game { sceneManager.initSceneEvent(); } + dispose() { + SceneManager.Instance.dispose(); + this.scene.dispose() + this.scene = null; + this.engine.dispose(); + this.engine = null; + } + } diff --git a/src/app/pages/plan/plan.component.ts b/src/app/pages/plan/plan.component.ts index c74cb66..a393299 100644 --- a/src/app/pages/plan/plan.component.ts +++ b/src/app/pages/plan/plan.component.ts @@ -21,7 +21,8 @@ export class PlanComponent implements OnInit { } ngOnDestroy(): void { //组件销毁前 销毁canvas - + this.game.dispose(); + this.game = null; } }