Hello.
I have a strange problem with DontDestroyOnLoad.
I have some kind of map as a starting scene. From there there user can click on certain map-objects and a new level is loaded with Application.LoadLevel(). When the level is finished the map is loaded again.
I have a prefab for my global data. It is a hierarchy of several GameManagers und DataObjects that are needed in every scene. The hierarchy looks like this in design-time:

The root GameObject ‘GlobalData’ has a script attached that calls DontDestroyOnLoad:
using UnityEngine;
using System.Collections;
public class GlobalData : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(this.gameObject);
}
}
As far as I understood the docs all child gameobjects should not be destroyed, too.
After starting the game and playing some levels (with jumping back to the map) the hierachy looks like this during runtime:

Somehow the prefab is added again and again but the manager-objects are missing.
Another issue is that DontDestroyOnLoad does not seem to work in general as when I’m doing some debug prints the Start and Awake methods of my manager-objects are called for every scene.
Has anybody an idea what is going wrong here?