void SaveAssets(GameObject root)
{
#if UNITY_3_5
Transform parent = root.transform.parent;
var prefab = PrefabUtility.CreatePrefab(NGUIEditorTools.GetSelectionFolder() + root.name + ".prefab", root);
UnityEngine.Object.DestroyImmediate(root);
var newObj = PrefabUtility.InstantiatePrefab(prefab) as GameObject;
newObj.transform.parent = parent;
newObj.transform.localScale = Vector3.one;
#else
Transform parent = root.transform.parent;
var prefab = PrefabUtility.CreateEmptyPrefab(GetSaveFolder() + root.name + "_.prefab");
prefab = PrefabUtility.ReplacePrefab(root, prefab);
UnityEngine.Object.DestroyImmediate(root);
var newObj = (GameObject)PrefabUtility.InstantiatePrefab(prefab);
newObj.transform.parent = parent;
newObj.transform.localScale = Vector3.one;
#endif
AssetDatabase.Refresh();
}