public void OnGUI() { GUILayout.BeginVertical(); //地图 GUILayout.BeginHorizontal(); //地图名称 GUILayout.Label("地图名称:", GUILayout.Width(80), GUILayout.Height(20)); mapName = GUILayout.TextField(mapName, GUILayout.Width(200), GUILayout.Height(20)); editSceneVo.mapName = mapName; GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.Space(20); //导出地图数据 GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); //导出地图数据 if (GUILayout.Button("导出元素布局", GUILayout.Width(300), GUILayout.Height(30))) { ExportScene.exportNewScene(MapEditorModel.Instance.getCellVos(), editSceneVo); ShowEditorBlock = true; } GUILayout.EndHorizontal(); GUILayout.EndVertical(); if (ShowEditorBlock) { GUILayout.Space(20); //编辑网格障碍 GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); //编辑网格障碍 if (GUILayout.Button("编辑网格障碍", GUILayout.Width(300), GUILayout.Height(30))) { ShowEditorBlock = false; EditorWindow.GetWindow(typeof(MapEditor)).Close(); NavMeshExtension.CreateNavMeshManager.Init(); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } }
static public void Main() { Init(); window = GetWindow <ExportScene>(); window.Show(); }
static void ExportObj(string fileName) { Terrain terrain = UnityEngine.Object.FindObjectOfType <Terrain>(); MeshFilter[] mfs = UnityEngine.Object.FindObjectsOfType <MeshFilter>(); SkinnedMeshRenderer[] smrs = UnityEngine.Object.FindObjectsOfType <SkinnedMeshRenderer>(); ExportScene.ExportSceneToObj(fileName + ".obj", terrain, mfs, smrs, false, true); }
protected override IEnumerator DoExport() { if (m_MapPaths != null && m_MapPaths.Count > 0) { for (int iMap = 0; iMap < m_MapPaths.Count; iMap++) { string mapPath = m_MapPaths[iMap]; Scene iterScene = EditorSceneManager.OpenScene(mapPath, OpenSceneMode.Single); while (!iterScene.isLoaded) { yield return(null); } try { ExportScene.BakeNavMeshFromNav(); } catch (Exception e) { Debug.LogError("导出NavMesh失败:" + mapPath); } yield return(null); } } }