void ShowGizmoGUI() { TerrainToolboxUtilities.DrawSeperatorLine(); bool gizmoToggle = m_Settings.EnableGizmo && ToolboxHelper.GizmoGO != null ? true : false; m_Settings.ShowGizmoSettings = TerrainToolGUIHelper.DrawToggleHeaderFoldout(Styles.Gizmo, m_Settings.ShowGizmoSettings, ref gizmoToggle, 0f); if (gizmoToggle && !ToolboxHelper.GizmoEnabled) { ToolboxHelper.ShowGizmo(); ToolboxHelper.UpdateGizmos(m_Settings.TerrainWidth, m_Settings.TerrainHeight, m_Settings.TerrainLength, m_Settings.StartPosition, m_Settings.GroupID); } else if (!gizmoToggle && ToolboxHelper.GizmoEnabled) { ToolboxHelper.HideGizmo(); } if (ToolboxHelper.GizmoEnabled && ToolboxHelper.GizmoGO != null) { if (GUI.changed) { ToolboxHelper.UpdateGizmos(m_Settings.TerrainWidth, m_Settings.TerrainHeight, m_Settings.TerrainLength, m_Settings.StartPosition, m_Settings.GroupID); } else if (ToolboxHelper.GizmoGO.transform.hasChanged) { Transform gizmoTransform = ToolboxHelper.GizmoGO.transform; Vector3Int gizmoScale = Vector3Int.RoundToInt(gizmoTransform.localScale); m_Settings.TerrainWidth = gizmoScale.x; m_Settings.TerrainLength = gizmoScale.z; m_Settings.TerrainHeight = gizmoScale.y; m_Settings.StartPosition = ToolboxHelper.GetGizmoPosition(); } } // Update gizmo colors Color previousColor = m_Settings.GizmoCubeColor + m_Settings.GizmoWireColor; if (m_Settings.ShowGizmoSettings) { EditorGUI.BeginDisabledGroup(!m_Settings.EnableGizmo); EditorGUILayout.Space(); m_Settings.GizmoCubeColor = EditorGUILayout.ColorField(Styles.CubeColor, m_Settings.GizmoCubeColor); m_Settings.GizmoWireColor = EditorGUILayout.ColorField(Styles.CubeWireColor, m_Settings.GizmoWireColor); EditorGUI.EndDisabledGroup(); } m_Settings.EnableGizmo = gizmoToggle; if (previousColor != m_Settings.GizmoCubeColor + m_Settings.GizmoWireColor) { UnityEditor.SceneView.RepaintAll(); } ToolboxHelper.SetGizmoColor(m_Settings.GizmoCubeColor, m_Settings.GizmoWireColor); }
void ShowGeneralGUI() { EditorGUILayout.LabelField("General", EditorStyles.boldLabel); EditorGUILayout.Space(); ++EditorGUI.indentLevel; // Terrain Sizing EditorGUI.BeginChangeCheck(); m_Settings.TerrainWidth = EditorGUILayout.IntField(Styles.TerrainWidth, m_Settings.TerrainWidth); m_Settings.TerrainLength = EditorGUILayout.IntField(Styles.TerrainLength, m_Settings.TerrainLength); m_Settings.TerrainHeight = EditorGUILayout.IntField(Styles.TerrainHeight, m_Settings.TerrainHeight); m_Settings.StartPosition = EditorGUILayout.Vector3Field(Styles.StartPosition, m_Settings.StartPosition); if (EditorGUI.EndChangeCheck()) { m_Settings.HeightmapRemapMax = m_Settings.TerrainHeight; } // Update Gizmo in scene if (ToolboxHelper.GizmoEnabled) { ToolboxHelper.UpdateGizmos(m_Settings.TerrainWidth, m_Settings.TerrainHeight, m_Settings.TerrainLength, m_Settings.StartPosition, m_Settings.GroupID); } EditorGUI.BeginChangeCheck(); m_Settings.TilesX = EditorGUILayout.IntField(Styles.TilesXAxis, m_Settings.TilesX); m_Settings.TilesZ = EditorGUILayout.IntField(Styles.TilesZAxis, m_Settings.TilesZ); if (EditorGUI.EndChangeCheck() && m_Settings.EnableHeightmapImport) { UpdateHeightmapInformation(m_Settings.GlobalHeightmapPath); } // Terrain Group Settings m_Settings.GroupID = EditorGUILayout.IntField(Styles.GroupingID, m_Settings.GroupID); m_Settings.ShowGroupSettings = EditorGUILayout.Foldout(m_Settings.ShowGroupSettings, Styles.GroupSettings, true); if (m_Settings.ShowGroupSettings) { m_Settings.PixelError = EditorGUILayout.FloatField(Styles.PixelError, m_Settings.PixelError); m_Settings.BaseMapDistance = EditorGUILayout.IntField(Styles.BaseMapDistance, m_Settings.BaseMapDistance); m_Settings.MaterialOverride = EditorGUILayout.ObjectField(Styles.ShareMaterial, m_Settings.MaterialOverride, typeof(Material), false) as Material; m_Settings.HeightmapResolution = EditorGUILayout.IntPopup("Tile Height Resolution", m_Settings.HeightmapResolution, HeightmapSizeNames, HeightmapSize); } --EditorGUI.indentLevel; }