private void DrawMaterialEditorGUI(string caption) { if (EditorUtils.DrawHeader("材质笔刷", "TerrainEditor")) { EditorUtils.BeginContents(); materialBrush.brushRange = EditorGUILayout.IntSlider("笔刷范围", materialBrush.brushRange, 1, 5); EditorUtils.EndContents(); } if (EditorUtils.DrawHeader("材质编辑", "TerrainEditor")) { EditorUtils.BeginContents(); if (HexMetrics.instance.isEditorTexture) { //materialBrush.TerrainType = (TerrainTypes)EditorGUILayout.IntPopup("材质类型", (int)materialBrush.TerrainType, MATERIAL_TEXTURE_NAMES, MATERIAL_TEXTURE_VALUES); //materialBrush.EditColor = EditorGUILayout.ColorField(materialBrush.EditColor); if (MaterialModifier.instance.m_lockedChunk == null) { Color oldColor = GUI.color; GUI.color = Color.red; EditorGUILayout.LabelField("在场景视图中用L键锁定地形块进行编辑!"); GUI.color = oldColor; } else { DrawDiffuseLayerGUI(MaterialModifier.instance.m_lockedChunk); } } else { materialBrush.EditColor = EditorGUILayout.ColorField(materialBrush.EditColor); } EditorUtils.EndContents(); } }
protected override bool DrawWizardGUI() { mapName = EditorGUILayout.TextField("地形名称", mapName); chunkWidth = EditorGUILayout.IntField("地形块宽度", chunkWidth); chunkHeight = EditorGUILayout.IntField("地形块长度", chunkHeight); chunkCountX = EditorGUILayout.IntField("地形宽度", chunkCountX); chunkCountZ = EditorGUILayout.IntField("地形长度", chunkCountZ); isUseTexture = EditorGUILayout.Toggle("地形是否使用纹理", isUseTexture); isSaveAfterCreate = EditorGUILayout.Toggle("创建完是否保存", isSaveAfterCreate); if (EditorUtils.DrawHeader("地形", "CreateWorld")) { EditorUtils.BeginContents(); for (int i = 0; i < terrainTexCount; i++) { if (i == 0) { defaultTerrainTexs[0] = EditorGUILayout.ObjectField("默认纹理", defaultTerrainTexs[0], typeof(Texture2D), false) as Texture2D; } else { defaultTerrainTexs[i] = EditorGUILayout.ObjectField("纹理 " + (i + 1), defaultTerrainTexs[i], typeof(Texture2D), false) as Texture2D; } } if (terrainTexCount < 6) { if (GUILayout.Button(CONTENT_ADD_LAYER, GUILayout.MaxWidth(20))) { terrainTexCount++; } } for (int i = terrainTexCount; i < defaultTerrainTexs.Length; i++) { defaultTerrainTexs[i] = null; } EditorUtils.EndContents(); } return(true); }
private void DrawSceneObjEditorGUI(string caption) { if (EditorUtils.DrawHeader("笔刷编辑", "TerrainEditor")) { EditorUtils.BeginContents(); sceneObjBrush.IsBrushSceneObject = !EditorGUILayout.Toggle("是否单个编辑", !sceneObjBrush.IsBrushSceneObject); sceneObjBrush.brushRange = EditorGUILayout.IntSlider("笔刷范围", sceneObjBrush.brushRange, 1, 5); sceneObjBrush.SceneObjectDensity = EditorGUILayout.IntSlider("物体密度", sceneObjBrush.SceneObjectDensity, 1, 20); sceneObjBrush.SceneObjOperationType = (SceneObjBrush.OperationType)EditorGUILayout.IntPopup("操作", (int)sceneObjBrush.SceneObjOperationType, SCENEOBJ_OPERATION_NAMES, SCENEOBJ_OPERATION_VALUES); EditorUtils.EndContents(); } if (EditorUtils.DrawHeader("场景物体编辑", "TerrainEditor")) { //EditorGUILayout.LabelField("场景物体选择"); sceneObjBrush.SceneObj = EditorGUILayout.ObjectField("场景物体选择", sceneObjBrush.SceneObj, typeof(GameObject), false) as GameObject; sceneObjBrush.ObjSize = EditorGUILayout.Slider("物体大小", sceneObjBrush.ObjSize, 0.0f, 10.0f); } }
private void DrawTerrainEditorGUI(string caption) { if (EditorUtils.DrawHeader("地形编辑", "TerrainEditor")) { string[] captions = { "地形高度", "水体高度", "地形边界" }; if (editorType > EditorType.EdgeEditor) { editorType = EditorType.HeightEditor; } editorType = (EditorType)GUILayout.Toolbar((int)editorType, captions); switch (editorType) { case EditorType.HeightEditor: EditorUtils.BeginContents(); heightBrush.brushRange = EditorGUILayout.IntSlider("笔刷范围", heightBrush.brushRange, 1, 5); heightBrush.Elevation = EditorGUILayout.IntSlider("地形高度", heightBrush.Elevation, 0, 5); EditorUtils.EndContents(); break; case EditorType.WaterEditor: EditorUtils.BeginContents(); waterBrush.brushRange = EditorGUILayout.IntSlider("笔刷范围", waterBrush.brushRange, 1, 5); waterBrush.WaterLevel = EditorGUILayout.IntSlider("水体高度", waterBrush.WaterLevel, 0, 5); EditorUtils.EndContents(); break; case EditorType.EdgeEditor: EditorUtils.BeginContents(); edgeBrush.EditEdgeType = (EdgeBrush.EditorEdgeType)EditorGUILayout.IntPopup("边界类型", (int)edgeBrush.EditEdgeType, EDGE_BRUSEH_NAMES, EDGE_BRUSH_VALUES); edgeBrush.IsWholeEditor = EditorGUILayout.Toggle("整个六边形编辑", edgeBrush.IsWholeEditor); edgeBrush.brushRange = EditorGUILayout.IntSlider("笔刷范围", waterBrush.brushRange, 1, 5); EditorUtils.EndContents(); break; } } }