I’m currently using Application.LoadLevel to navigate though scenes, however, returning to a scene reloads the level rather than just returning to it, this takes a huge toll on the memory and causes the android app to be slow and eventually crash.
Is there a way to not constantly load one scene on top of the other if its already been opened?
When loading a new scene, the current scene is unloaded. This can be as memory-intensive as loading. If GC gets involved, even more so.
There are some methods to help with this, such as Application.LoadLevelAdditive or its Async versions. This may be suitable to load your menu again, but probably won’t work if you are running low on memory already.
Have you considered passing through a relatively empty loader scene? If switching between big levels is proving too heavy, you could pass through an empty scene, and then load a more intensive one - sounds like a proper loading manager is outside the scope of your project.