private void EditMap(string mapName) { string sceneName = "Edit" + mapName; string scenePath = "Assets/Scenes/" + sceneName + ".unity"; if (EditorSceneManager.GetActiveScene().name != sceneName) { SceneAsset scene = AssetDatabase.LoadAssetAtPath <SceneAsset>(scenePath); if (scene == null) { EditorUtility.DisplayDialog("提示", "找不到场景文件" + scenePath, "好的"); return; } else { EditorSceneManager.OpenScene(scenePath); } } GameObject mapGo = GameObject.FindObjectOfType <BaseMap>()?.gameObject; if (mapGo == null) { EditorUtility.DisplayDialog("提示", "该场景中找不到地图", "好的"); return; } Selection.activeGameObject = mapGo; SetCurrentSceneIndex(); ToolsHelperEditor.SetStartupScene(mapName); }
private void SaveMap() { BaseMap baseMap = (BaseMap)target; string mapName = baseMap.gameObject.name; string path = "Assets/Prefabs/Maps/" + mapName + ".prefab"; GameObject prefab = AssetDatabase.LoadAssetAtPath <GameObject>(path); if (prefab == null) { PrefabUtility.CreatePrefab(path, baseMap.gameObject); } else { PrefabUtility.ReplacePrefab(baseMap.gameObject, prefab, ReplacePrefabOptions.ReplaceNameBased); } string sceneName = "Edit" + baseMap.gameObject.name; string scenePath = "Assets/Scenes/" + sceneName + ".unity"; EditorSceneManager.SaveScene(baseMap.gameObject.scene, scenePath); ToolsHelperEditor.SetStartupScene(mapName); }