From e7f5e7c387cac9c4886a54644ab88191fa5eea80 Mon Sep 17 00:00:00 2001 From: FrancescoC-Unity Date: Thu, 9 Sep 2021 16:28:24 +0200 Subject: [PATCH 1/2] Add warning. --- .../ProbeVolume/ProbeVolumeUI.Drawer.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs b/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs index 3e9a4d915b2..8765b9e0795 100644 --- a/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs +++ b/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs @@ -126,8 +126,12 @@ static void Drawer_VolumeContent(SerializedProbeVolume serialized, Editor owner) return; } + ProbeVolume pv = (serialized.serializedObject.targetObject as ProbeVolume); + + bool hasProfile = (ProbeReferenceVolume.instance.sceneData?.GetProfileForScene(pv.gameObject.scene) != null); + EditorGUI.BeginChangeCheck(); - if ((serialized.serializedObject.targetObject as ProbeVolume).mightNeedRebaking) + if (pv.mightNeedRebaking) { var helpBoxRect = GUILayoutUtility.GetRect(new GUIContent(Styles.s_ProbeVolumeChangedMessage, EditorGUIUtility.IconContent("Warning@2x").image), EditorStyles.helpBox); EditorGUI.HelpBox(helpBoxRect, Styles.s_ProbeVolumeChangedMessage, MessageType.Warning); @@ -137,6 +141,13 @@ static void Drawer_VolumeContent(SerializedProbeVolume serialized, Editor owner) if (!serialized.globalVolume.boolValue) EditorGUILayout.PropertyField(serialized.size, Styles.s_Size); + if (!hasProfile) + { + EditorGUILayout.HelpBox("No profile information is set for the scene that owns this probe volume so no subdivision information can be retrieved.", MessageType.Warning); + } + + EditorGUI.BeginDisabledGroup(!hasProfile); + var rect = EditorGUILayout.GetControlRect(true); EditorGUI.BeginProperty(rect, Styles.s_MinMaxSubdivSlider, serialized.minSubdivisionMultiplier); EditorGUI.BeginProperty(rect, Styles.s_MinMaxSubdivSlider, serialized.maxSubdivisionMultiplier); @@ -154,7 +165,12 @@ static void Drawer_VolumeContent(SerializedProbeVolume serialized, Editor owner) int minSubdivInVolume = ProbeReferenceVolume.instance.GetMaxSubdivision(1 - serialized.minSubdivisionMultiplier.floatValue); int maxSubdivInVolume = ProbeReferenceVolume.instance.GetMaxSubdivision(1 - serialized.maxSubdivisionMultiplier.floatValue); - EditorGUILayout.HelpBox($"The distance between probes will fluctuate between : {ProbeReferenceVolume.instance.GetDistanceBetweenProbes(maxSubdivInVolume)}m and {ProbeReferenceVolume.instance.GetDistanceBetweenProbes(minSubdivInVolume)}m", MessageType.Info); + + if (hasProfile) + EditorGUILayout.HelpBox($"The distance between probes will fluctuate between : {ProbeReferenceVolume.instance.GetDistanceBetweenProbes(maxSubdivInVolume)}m and {ProbeReferenceVolume.instance.GetDistanceBetweenProbes(minSubdivInVolume)}m", MessageType.Info); + + EditorGUI.EndDisabledGroup(); + if (EditorGUI.EndChangeCheck()) { Vector3 tmpClamp = serialized.size.vector3Value; From 371718d474d4af1b5c81aa7ace9114eebec95a47 Mon Sep 17 00:00:00 2001 From: Sebastien Lagarde Date: Sun, 12 Sep 2021 20:52:36 +0200 Subject: [PATCH 2/2] fix compilation issue --- .../Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs b/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs index 16e5d3c7069..ca6eb6c6b4a 100644 --- a/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs +++ b/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs @@ -159,8 +159,6 @@ static void Drawer_VolumeContent(SerializedProbeVolume serialized, Editor owner) { if (ProbeReferenceVolume.instance.sceneData != null) { - ProbeVolume pv = (serialized.serializedObject.targetObject as ProbeVolume); - var profile = ProbeReferenceVolume.instance.sceneData.GetProfileForScene(pv.gameObject.scene); if (profile != null)