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(); } }