What happens to GameObjects and Textures when switching levels?

What happens to GameObjects and Textures when switching levels?

(1) I switch levels from the “main menu” to the “game” then back again. The main menu level has a GUITexture component and the C# script component with public 2DTexture variables. The game level has two main gameobject meshes and the control C# script with its public gameobject variables. What happens to these objects when switching levels back and forth?

(2) When instantiating an object from a non-Monobehaviour C# class, how should I cleanup its references before switching to another level?

Thanks CSDG

@Scribe is right that when switching scenes each GameObject is destroyed, unless it has DontDestroyOnLoad of course.

As for cleaning up instantiated objects from non-Monobehariour classes, all the instantiating will happen from Monobehaviour classes - so when you switch scenes all non-static references will removed which will free the instantiated objects up for the garbage collector, so no need to worry about that.