I am porting an existing, large Unity game to a mobile platform. Because there are performance issues, I am interested in disabling all but the room the player is currently in for each level. The approach basically works, but there are some issues.
Game objects with attached RigidBody components start behaving very strangely when they are enabled after first being disabled. They start moving around erratically, and don't seem to handle collisions anymore. I have been able to work around some of these issues by explicitly setting the freezeRotation and isKinematic properties for RigidBody components, but the overall behavior is still off.
I am new to Unity and apologize if this is a noobish questions, or if the solution seems obvious.
A little bit more background regarding the issue: all objects are ultimately parented to the room that they are in. When the player transfers from one room to the next, I turn off objects in the current room by calling oldRoom.SetActiveRecursively(false), and activate the new room by calling newRoom.SetActiveRecursively(true).
Disclaimer for posters that wish to point me towards occlusion culling: I know about occlusion culling as a standard way to increase performance, but it doesn't seem appropriate in my case, as I am running low on memory, and don't have room for occlusion maps.