Skip to content

Instantly share code, notes, and snippets.

@rje
Created December 12, 2017 23:38
Show Gist options
  • Save rje/69daeb155a014041bf5c729515f63c5c to your computer and use it in GitHub Desktop.
Save rje/69daeb155a014041bf5c729515f63c5c to your computer and use it in GitHub Desktop.
using UnityEditor;
using UnityEngine.SceneManagement;
public class PropTools {
[MenuItem("Edit/Custom/Save All Prefabs")]
public static void SaveAllRootPrefabs()
{
var roots = SceneManager.GetActiveScene().GetRootGameObjects();
for (var i = 0; i < roots.Length; i++)
{
var root = roots[i];
var perc = i / (float) roots.Length;
var type = PrefabUtility.GetPrefabType(root);
if (type == PrefabType.PrefabInstance || type == PrefabType.DisconnectedPrefabInstance)
{
var prefab = PrefabUtility.GetPrefabParent(root);
EditorUtility.DisplayProgressBar("Saving all prefabs...", "Saving " + root.name, perc);
PrefabUtility.ReplacePrefab(root, prefab, ReplacePrefabOptions.ConnectToPrefab);
}
}
EditorUtility.ClearProgressBar();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment