Search code examples
javascriptunity-game-engineunity-webgl

How do I clean up and unload a Unity WebGL canvas when changing page


I've got a problem on my web application when I am changing the current page after downloading and running a Unity WebGL game.

In fact, I know for sure that the game is running because I continuously hear the sounds when my player is dying.

Is there a way to delete all of the context when changing a web page? Could this be a kind of memory leak?

Edit 1: My web application is done with AngularJS / Material


Solution

  • The solution is simple: load the WebGL unity in an iframe, this sandboxes the application.

    When you're done with the unity app just remove the node of the iframe like:

    var iframe=...;
    iframe.parentNode.removeChild(iframe);
    

    And it and all of it's resources should be instantly unloaded.

    You can't communicate with the Unity player directly when you're in an iframe but you still can pass messages to and from it with postMessage.