static void SaveAll() { UnityEngine.SceneManagement.Scene sc = UnityEngine.SceneManagement.SceneManager.GetActiveScene(); if (!sc.IsValid()) { return; } SceneConfig data = new SceneConfig(); data.Data.LevelName = sc.name; GameObject[] array = GameObject.FindGameObjectsWithTag(SERIALIZE_SCENE_OBJECT_TAG); if (array == null) { return; } for (int i = 0; i < array.Length; ++i) { UnityEngine.Object parentObject = PrefabUtility.GetPrefabParent(array[i]); string path = AssetDatabase.GetAssetPath(parentObject); if (string.IsNullOrEmpty(path)) { continue; } var transform = array[i].transform; var parent = transform.parent; //写入数据 var obj = new SceneConfigData.SceneObject(); obj.AssetName = path; obj.Position = transform.position; obj.Scale = transform.lossyScale; obj.Rotation = transform.rotation; obj.ParentName = parent != null? Common.CalcTransformHierarchyPath(parent) : ""; data.Data.SceneObjects.Add(obj); } data.Save(SceneConfig.GetSceneConfigPath(sc.path)); AssetDatabase.Refresh(); }