public void OnEnable()
    {
        _helper = (FurnitureHelper)target;
        _cachedPrefabInstance = PrefabUtility.GetPrefabParent(_helper.gameObject);

        if (_cachedPrefabInstance != null)
        {
            PrefabUtility.DisconnectPrefabInstance(_helper.gameObject);
            //Object temp = PrefabUtility.CreateEmptyPrefab("Assets/dummy.prefab");
            //PrefabUtility.ReplacePrefab(_helper.gameObject, temp, ReplacePrefabOptions.ConnectToPrefab);
            //PrefabUtility.DisconnectPrefabInstance(_helper.gameObject);
            //AssetDatabase.DeleteAsset("Assets/dummy.prefab");
        }
    }
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        _helper = (FurnitureHelper)target;

        Debug.Log(_helper.FurniturePrefabs.Length);

        if (_cachedPrefabInstance == null)
        {
            GUILayout.Label("Instance connection = false");
        }
        else
        {
            GUILayout.Label("Instance connection = true");
        }

        foreach (FurnitureHelper.FurnitureData t in _helper.FurniturePrefabs)
        {
            GUILayout.Label(t.Prefab.name + " Pos: " + t.Position + " Rot: " + t.Rotation.eulerAngles);
        }

        if (GUILayout.Button("Save Room"))
        {
            if (_cachedPrefabInstance != null)
            {
                saveFurniturePrefabs();
                PrefabUtility.ReplacePrefab(_helper.gameObject, _cachedPrefabInstance, ReplacePrefabOptions.ConnectToPrefab);
                PrefabUtility.DisconnectPrefabInstance(_helper.gameObject);
                DestroyImmediate(_helper.gameObject);
            }
            else
            {
                Debug.LogError("You should create a prefab first, otherwise nothin is saved.");
            }
        }
        else if (GUILayout.Button("Load Furniture"))
        {
            loadFurniturePrefabs();
        }
        else if (GUILayout.Button("Clear Saved Furniture"))
        {
            _helper.ClearFurniture();
        }
    }