Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }