private void saveFurniturePrefabs()
    {
        _helper.ClearFurniture();

        foreach (Transform t in _helper.PrefabsContainer.transform)
        {
            if (t.gameObject != _helper.PrefabsContainer && PrefabUtility.GetPrefabParent(t.gameObject) != null)
            {
                _helper.AddFurniture(new FurnitureHelper.FurnitureData(PrefabUtility.GetPrefabParent(t.gameObject), t.localPosition, t.localRotation));
            }
        }

        clearFurnitureContainer();

        EditorUtility.SetDirty(_helper);
    }
    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();
        }
    }