|
|
|
|
|
|
using CED = CoreEditorDrawer<HDReflectionProbeUI, SerializedHDReflectionProbe>; |
|
|
|
using _ = CoreEditorUtils; |
|
|
|
|
|
|
|
public partial class HDReflectionProbeUI |
|
|
|
internal partial class HDReflectionProbeUI |
|
|
|
{ |
|
|
|
static HDReflectionProbeUI() |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
static void Drawer_InfluenceBoxSettings(HDReflectionProbeUI s, SerializedHDReflectionProbe p, Editor owner) |
|
|
|
{ |
|
|
|
bool advanced = p.editorAdvancedModeEnabled.boolValue; |
|
|
|
var maxBlendDistance = HDReflectionProbeEditorUtility.CalculateBoxMaxBlendDistance(s, p, owner); |
|
|
|
bool advanced = p.influenceVolume.editorAdvancedModeEnabled.boolValue; |
|
|
|
var maxBlendDistance = p.boxSize.vector3Value * 0.5f; |
|
|
|
|
|
|
|
EditorGUILayout.BeginHorizontal(); |
|
|
|
Drawer_AdvancedBlendDistance( |
|
|
|
|
|
|
{ |
|
|
|
CoreEditorUtils.DrawVector6( |
|
|
|
CoreEditorUtils.GetContent("Face fade|Fade faces of the cubemap."), |
|
|
|
p.boxSideFadePositive, p.boxSideFadeNegative, Vector3.zero, Vector3.one, HDReflectionProbeEditor.k_handlesColor); |
|
|
|
p.influenceVolume.boxSideFadePositive, p.influenceVolume.boxSideFadeNegative, Vector3.zero, Vector3.one, HDReflectionProbeEditor.k_handlesColor); |
|
|
|
SerializedProperty blendDistancePositive = isNormal ? p.blendNormalDistancePositive : p.blendDistancePositive; |
|
|
|
SerializedProperty blendDistanceNegative = isNormal ? p.blendNormalDistanceNegative : p.blendDistanceNegative; |
|
|
|
SerializedProperty editorAdvancedModeBlendDistancePositive = isNormal ? p.editorAdvancedModeBlendNormalDistancePositive : p.editorAdvancedModeBlendDistancePositive; |
|
|
|
SerializedProperty editorAdvancedModeBlendDistanceNegative = isNormal ? p.editorAdvancedModeBlendNormalDistanceNegative : p.editorAdvancedModeBlendDistanceNegative; |
|
|
|
SerializedProperty editorSimplifiedModeBlendDistance = isNormal ? p.editorSimplifiedModeBlendNormalDistance : p.editorSimplifiedModeBlendDistance; |
|
|
|
SerializedProperty blendDistancePositive = isNormal ? p.influenceVolume.boxBlendNormalDistancePositive : p.influenceVolume.boxBlendDistancePositive; |
|
|
|
SerializedProperty blendDistanceNegative = isNormal ? p.influenceVolume.boxBlendNormalDistanceNegative : p.influenceVolume.boxBlendDistanceNegative; |
|
|
|
SerializedProperty editorAdvancedModeBlendDistancePositive = isNormal ? p.influenceVolume.editorAdvancedModeBlendNormalDistancePositive : p.influenceVolume.editorAdvancedModeBlendDistancePositive; |
|
|
|
SerializedProperty editorAdvancedModeBlendDistanceNegative = isNormal ? p.influenceVolume.editorAdvancedModeBlendNormalDistanceNegative : p.influenceVolume.editorAdvancedModeBlendDistanceNegative; |
|
|
|
SerializedProperty editorSimplifiedModeBlendDistance = isNormal ? p.influenceVolume.editorSimplifiedModeBlendNormalDistance : p.influenceVolume.editorSimplifiedModeBlendDistance; |
|
|
|
if (p.editorAdvancedModeEnabled.boolValue) |
|
|
|
if (p.influenceVolume.editorAdvancedModeEnabled.boolValue) |
|
|
|
{ |
|
|
|
EditorGUI.BeginChangeCheck(); |
|
|
|
CoreEditorUtils.DrawVector6( |
|
|
|
|
|
|
|
|
|
|
static void Drawer_InfluenceSphereSettings(HDReflectionProbeUI s, SerializedHDReflectionProbe p, Editor owner) |
|
|
|
{ |
|
|
|
var maxBlendDistance = HDReflectionProbeEditorUtility.CalculateSphereMaxBlendDistance(s, p, owner); |
|
|
|
var maxBlendDistance = p.influenceVolume.sphereRadius.floatValue; |
|
|
|
var blendDistance = p.blendDistancePositive.vector3Value.x; |
|
|
|
var blendDistance = p.influenceVolume.boxBlendDistancePositive.vector3Value.x; |
|
|
|
EditorGUI.showMixedValue = p.blendDistancePositive.hasMultipleDifferentValues; |
|
|
|
EditorGUI.showMixedValue = p.influenceVolume.boxBlendDistancePositive.hasMultipleDifferentValues; |
|
|
|
p.blendDistancePositive.vector3Value = Vector3.one * blendDistance; |
|
|
|
p.blendDistanceNegative.vector3Value = Vector3.one * blendDistance; |
|
|
|
p.influenceVolume.boxBlendDistancePositive.vector3Value = Vector3.one * blendDistance; |
|
|
|
p.influenceVolume.boxBlendDistanceNegative.vector3Value = Vector3.one * blendDistance; |
|
|
|
} |
|
|
|
if (GUILayout.Button(toolbar_Contents[1], GUILayout.Width(28f), GUILayout.Height(EditorGUIUtility.singleLineHeight + 3))) |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
var blendNormalDistance = p.blendNormalDistancePositive.vector3Value.x; |
|
|
|
var blendNormalDistance = p.influenceVolume.boxBlendNormalDistancePositive.vector3Value.x; |
|
|
|
EditorGUI.showMixedValue = p.blendNormalDistancePositive.hasMultipleDifferentValues; |
|
|
|
EditorGUI.showMixedValue = p.influenceVolume.boxBlendNormalDistancePositive.hasMultipleDifferentValues; |
|
|
|
p.blendNormalDistancePositive.vector3Value = Vector3.one * blendNormalDistance; |
|
|
|
p.blendNormalDistanceNegative.vector3Value = Vector3.one * blendNormalDistance; |
|
|
|
p.influenceVolume.boxBlendNormalDistancePositive.vector3Value = Vector3.one * blendNormalDistance; |
|
|
|
p.influenceVolume.boxBlendNormalDistanceNegative.vector3Value = Vector3.one * blendNormalDistance; |
|
|
|
} |
|
|
|
if (GUILayout.Button(toolbar_Contents[2], GUILayout.Width(28f), GUILayout.Height(EditorGUIUtility.singleLineHeight + 3))) |
|
|
|
{ |
|
|
|
|
|
|
{ |
|
|
|
GUILayout.FlexibleSpace(); |
|
|
|
|
|
|
|
bool advanced = p.editorAdvancedModeEnabled.boolValue; |
|
|
|
bool advanced = p.influenceVolume.editorAdvancedModeEnabled.boolValue; |
|
|
|
if (p.editorAdvancedModeEnabled.boolValue ^ advanced) |
|
|
|
if (p.influenceVolume.editorAdvancedModeEnabled.boolValue ^ advanced) |
|
|
|
p.editorAdvancedModeEnabled.boolValue = advanced; |
|
|
|
p.influenceVolume.editorAdvancedModeEnabled.boolValue = advanced; |
|
|
|
p.blendDistancePositive.vector3Value = p.editorAdvancedModeBlendDistancePositive.vector3Value; |
|
|
|
p.blendDistanceNegative.vector3Value = p.editorAdvancedModeBlendDistanceNegative.vector3Value; |
|
|
|
p.blendNormalDistancePositive.vector3Value = p.editorAdvancedModeBlendNormalDistancePositive.vector3Value; |
|
|
|
p.blendNormalDistanceNegative.vector3Value = p.editorAdvancedModeBlendNormalDistanceNegative.vector3Value; |
|
|
|
p.influenceVolume.boxBlendDistancePositive.vector3Value = p.influenceVolume.editorAdvancedModeBlendDistancePositive.vector3Value; |
|
|
|
p.influenceVolume.boxBlendDistanceNegative.vector3Value = p.influenceVolume.editorAdvancedModeBlendDistanceNegative.vector3Value; |
|
|
|
p.influenceVolume.boxBlendNormalDistancePositive.vector3Value = p.influenceVolume.editorAdvancedModeBlendNormalDistancePositive.vector3Value; |
|
|
|
p.influenceVolume.boxBlendNormalDistanceNegative.vector3Value = p.influenceVolume.editorAdvancedModeBlendNormalDistanceNegative.vector3Value; |
|
|
|
p.blendDistanceNegative.vector3Value = p.blendDistancePositive.vector3Value = Vector3.one * p.editorSimplifiedModeBlendDistance.floatValue; |
|
|
|
p.blendNormalDistanceNegative.vector3Value = p.blendNormalDistancePositive.vector3Value = Vector3.one * p.editorSimplifiedModeBlendNormalDistance.floatValue; |
|
|
|
p.influenceVolume.boxBlendDistanceNegative.vector3Value = p.influenceVolume.boxBlendDistancePositive.vector3Value = Vector3.one * p.influenceVolume.editorSimplifiedModeBlendDistance.floatValue; |
|
|
|
p.influenceVolume.boxBlendNormalDistanceNegative.vector3Value = p.influenceVolume.boxBlendNormalDistancePositive.vector3Value = Vector3.one * p.influenceVolume.editorSimplifiedModeBlendNormalDistance.floatValue; |
|
|
|
} |
|
|
|
p.Apply(); |
|
|
|
} |
|
|
|
|
|
|
static void Drawer_InfluenceShapeSphereSettings(HDReflectionProbeUI s, SerializedHDReflectionProbe p, Editor owner) |
|
|
|
{ |
|
|
|
EditorGUILayout.BeginHorizontal(); |
|
|
|
EditorGUILayout.PropertyField(p.influenceSphereRadius, CoreEditorUtils.GetContent("Radius")); |
|
|
|
EditorGUILayout.PropertyField(p.influenceVolume.sphereRadius, CoreEditorUtils.GetContent("Radius")); |
|
|
|
if (GUILayout.Button(toolbar_Contents[0], GUILayout.ExpandHeight(true), GUILayout.Width(28f), GUILayout.Height(EditorGUIUtility.singleLineHeight + 3))) |
|
|
|
{ |
|
|
|
EditMode.ChangeEditMode(EditMode.SceneViewEditMode.ReflectionProbeBox, GetBoundsGetter(p)(), owner); |
|
|
|
|
|
|
|
|
|
|
static void Drawer_InfluenceAreas(HDReflectionProbeUI s, SerializedHDReflectionProbe p, Editor owner) |
|
|
|
{ |
|
|
|
if (s.IsSectionExpandedShape(ShapeType.Box).value) |
|
|
|
if (s.IsSectionExpandedShape(Shape.Box).value) |
|
|
|
if (s.IsSectionExpandedShape(ShapeType.Sphere).value) |
|
|
|
if (s.IsSectionExpandedShape(Shape.Sphere).value) |
|
|
|
{ |
|
|
|
Drawer_InfluenceSphereSettings(s, p, owner); |
|
|
|
} |
|
|
|