public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); m_Editor.PullProbePositions(); EditMode.DoEditModeInspectorModeButton( EditMode.SceneViewEditMode.LightProbeGroup, "Edit Light Probes", Styles.editModeButton, this ); GUILayout.Space(3); EditorGUI.BeginDisabledGroup(EditMode.editMode != EditMode.SceneViewEditMode.LightProbeGroup); m_Editor.drawTetrahedra = EditorGUILayout.Toggle(Styles.showWireframe, m_Editor.drawTetrahedra); bool performDeringing = EditorGUILayout.Toggle(Styles.performDeringing, m_Editor.GetDeringProbes()); m_Editor.SetDeringProbes(performDeringing); EditorGUI.BeginDisabledGroup(m_Editor.SelectedCount == 0); Vector3 pos = m_Editor.SelectedCount > 0 ? m_Editor.GetSelectedPositions()[0] : Vector3.zero; Vector3 newPosition = EditorGUILayout.Vector3Field(Styles.selectedProbePosition, pos); if (newPosition != pos) { Vector3[] selectedPositions = m_Editor.GetSelectedPositions(); Vector3 delta = newPosition - pos; for (int i = 0; i < selectedPositions.Length; i++) { m_Editor.UpdateSelectedPosition(i, selectedPositions[i] + delta); } } EditorGUI.EndDisabledGroup(); GUILayout.Space(3); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); if (GUILayout.Button(Styles.addProbe)) { var position = Vector3.zero; if (SceneView.lastActiveSceneView) { var probeGroup = target as LightProbeGroup; if (probeGroup) { position = probeGroup.transform.InverseTransformPoint(position); } } StartEditProbes(); m_Editor.DeselectProbes(); m_Editor.AddProbe(position); } if (GUILayout.Button(Styles.deleteSelected)) { StartEditProbes(); m_Editor.RemoveSelectedProbes(); } GUILayout.EndVertical(); GUILayout.BeginVertical(); if (GUILayout.Button(Styles.selectAll)) { StartEditProbes(); m_Editor.SelectAllProbes(); } if (GUILayout.Button(Styles.duplicateSelected)) { StartEditProbes(); m_Editor.DuplicateSelectedProbes(); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); m_Editor.HandleEditMenuHotKeyCommands(); m_Editor.PushProbePositions(); if (EditorGUI.EndChangeCheck()) { m_Editor.MarkTetrahedraDirty(); SceneView.RepaintAll(); } }