void Awake() { m_terrainCreator = GameObject.FindObjectOfType <EPMPolyTerrainCreator>(); m_terrainCreator.Init(); m_terrainCreator.ImportData(); GameObject terrianRoot = m_terrainCreator.CreateTerrain(); for (int i = 0; i < terrianRoot.transform.childCount; i++) { terrianRoot.transform.GetChild(i).gameObject.AddComponent <MeshCollider>(); } }
public override void OnInspectorGUI() { EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(sectionStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("TerrainName:"); m_creator.g_customData.terrainName = EditorGUILayout.TextField(m_creator.g_customData.terrainName); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("TerrainWidth:"); m_creator.g_customData.terrainWidth = EditorGUILayout.IntField(m_creator.g_customData.terrainWidth, GUILayout.MinWidth(100)); GUILayout.Label("TerrainLength:"); m_creator.g_customData.terrainLength = EditorGUILayout.IntField(m_creator.g_customData.terrainLength, GUILayout.MinWidth(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("RowSplit:"); m_creator.g_customData.rowSplit = EditorGUILayout.IntField(m_creator.g_customData.rowSplit, GUILayout.MinWidth(100)); GUILayout.Label("ColumnSplit:"); m_creator.g_customData.columnSplit = EditorGUILayout.IntField(m_creator.g_customData.columnSplit, GUILayout.MinWidth(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Random Seed:", GUILayout.Width(100)); m_creator.g_customData.seed = EditorGUILayout.IntField(m_creator.g_customData.seed, GUILayout.Width(100)); if (GUILayout.Button("R", GUILayout.Width(20))) { UnityEngine.Random.InitState(System.DateTime.Now.Millisecond); m_creator.g_customData.seed = UnityEngine.Random.Range(0, 1000000); m_creator.CreateTerrain(); } GUILayout.Label("SeaLevel:"); m_creator.g_customData.seaLevel = EditorGUILayout.FloatField((float)m_creator.g_customData.seaLevel, GUILayout.MinWidth(100)); EditorGUILayout.EndHorizontal(); DrawDataReadWrite(); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(sectionStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("OBJECTS SECTION:"); GUILayout.FlexibleSpace(); if (GUILayout.Button("Visual Editor")) { EPMDrawMapWindow.CreateWindow(m_creator); } EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel++; for (int i = 0; i < 7; i++) { DrawPointListSection(i); } EditorGUI.indentLevel--; EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("CLEAR All OBJECTS", GUILayout.Width(150))) { if (EditorUtility.DisplayDialog("Caution!", "All the objects data will be cleard.", "OK", "Cancel")) { m_creator.g_customData.roadLists.Clear(); m_creator.g_customData.riverLists.Clear(); m_creator.g_customData.hillLists.Clear(); m_creator.g_customData.mountainLists.Clear(); m_creator.g_customData.sandGroundLists.Clear(); m_creator.g_customData.soilGroundLists.Clear(); m_creator.g_customData.islandLists.Clear(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(sectionStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("HEIGHT SECTION"); EditorGUILayout.EndHorizontal(); for (int i = 0; i < m_creator.g_customData.heightSamplerList.Count; i++) { DrawSingleHeightSampler(i); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Add New Sampler", GUILayout.Width(150))) { m_creator.g_customData.heightSamplerList.Add(new EPMPolyTerrainCreator.HeightSampleData()); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(sectionStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("TWIST SECTION"); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); m_creator.g_customData.twistSeed = EditorGUILayout.IntField("Twist Seed:", m_creator.g_customData.twistSeed, GUILayout.Width(300)); if (GUILayout.Button("R", GUILayout.Width(20))) { UnityEngine.Random.InitState(System.DateTime.Now.Millisecond); m_creator.g_customData.twistSeed = UnityEngine.Random.Range(0, 1000000); m_creator.CreateTerrain(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); m_creator.g_customData.twistNum = EditorGUILayout.IntField("Number:", m_creator.g_customData.twistNum, GUILayout.Width(300)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); m_creator.g_customData.twistStrength = EditorGUILayout.FloatField("Strength:", (float)m_creator.g_customData.twistStrength, GUILayout.Width(300)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("CreateTerrain")) { m_creator.CreateTerrain(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(sectionStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("COLOR SECTION:"); EditorGUILayout.EndHorizontal(); foreach (EPMPoint.PointType pt in System.Enum.GetValues(typeof(EPMPoint.PointType))) { DrawSingleTypeColor(pt); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(sectionStyle); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("ExportTerrain")) { m_creator.ExportTerrain(); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }