protected override void Awake()
    {
        initialize();

        SaveableGame.addObjectToCurrentScene(this);

        if (SaveableGame.FirstTimeSceneLoaded)
        {
            pathFromRoot = buildRootPath();
        }
    }
    protected virtual void Awake()
    {
        initialize();

        ///if the object was not created during loading phase or the
        ///load phase is creating all saved objects, or the scene is loaded in default state, add this object to saving list
        ///otherwise destroy it
        if (SaveableGame.KeepObjects)
        {
            SaveableGame.addObjectToCurrentScene(this);
        }
    }