111
This commit is contained in:
100
Assets/ThirdParty/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs
vendored
Normal file
100
Assets/ThirdParty/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.PostProcessing;
|
||||
|
||||
namespace UnityEditor.PostProcessing
|
||||
{
|
||||
using Settings = ScreenSpaceReflectionModel.Settings;
|
||||
|
||||
[PostProcessingModelEditor(typeof(ScreenSpaceReflectionModel))]
|
||||
public class ScreenSpaceReflectionModelEditor : PostProcessingModelEditor
|
||||
{
|
||||
struct IntensitySettings
|
||||
{
|
||||
public SerializedProperty reflectionMultiplier;
|
||||
public SerializedProperty fadeDistance;
|
||||
public SerializedProperty fresnelFade;
|
||||
public SerializedProperty fresnelFadePower;
|
||||
}
|
||||
|
||||
struct ReflectionSettings
|
||||
{
|
||||
public SerializedProperty blendType;
|
||||
public SerializedProperty reflectionQuality;
|
||||
public SerializedProperty maxDistance;
|
||||
public SerializedProperty iterationCount;
|
||||
public SerializedProperty stepSize;
|
||||
public SerializedProperty widthModifier;
|
||||
public SerializedProperty reflectionBlur;
|
||||
public SerializedProperty reflectBackfaces;
|
||||
}
|
||||
|
||||
struct ScreenEdgeMask
|
||||
{
|
||||
public SerializedProperty intensity;
|
||||
}
|
||||
|
||||
IntensitySettings m_Intensity;
|
||||
ReflectionSettings m_Reflection;
|
||||
ScreenEdgeMask m_ScreenEdgeMask;
|
||||
|
||||
public override void OnEnable()
|
||||
{
|
||||
m_Intensity = new IntensitySettings
|
||||
{
|
||||
reflectionMultiplier = FindSetting((Settings x) => x.intensity.reflectionMultiplier),
|
||||
fadeDistance = FindSetting((Settings x) => x.intensity.fadeDistance),
|
||||
fresnelFade = FindSetting((Settings x) => x.intensity.fresnelFade),
|
||||
fresnelFadePower = FindSetting((Settings x) => x.intensity.fresnelFadePower)
|
||||
};
|
||||
|
||||
m_Reflection = new ReflectionSettings
|
||||
{
|
||||
blendType = FindSetting((Settings x) => x.reflection.blendType),
|
||||
reflectionQuality = FindSetting((Settings x) => x.reflection.reflectionQuality),
|
||||
maxDistance = FindSetting((Settings x) => x.reflection.maxDistance),
|
||||
iterationCount = FindSetting((Settings x) => x.reflection.iterationCount),
|
||||
stepSize = FindSetting((Settings x) => x.reflection.stepSize),
|
||||
widthModifier = FindSetting((Settings x) => x.reflection.widthModifier),
|
||||
reflectionBlur = FindSetting((Settings x) => x.reflection.reflectionBlur),
|
||||
reflectBackfaces = FindSetting((Settings x) => x.reflection.reflectBackfaces)
|
||||
};
|
||||
|
||||
m_ScreenEdgeMask = new ScreenEdgeMask
|
||||
{
|
||||
intensity = FindSetting((Settings x) => x.screenEdgeMask.intensity)
|
||||
};
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
EditorGUILayout.HelpBox("This effect only works with the deferred rendering path.", MessageType.Info);
|
||||
|
||||
EditorGUILayout.LabelField("Reflection", EditorStyles.boldLabel);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(m_Reflection.blendType);
|
||||
EditorGUILayout.PropertyField(m_Reflection.reflectionQuality);
|
||||
EditorGUILayout.PropertyField(m_Reflection.maxDistance);
|
||||
EditorGUILayout.PropertyField(m_Reflection.iterationCount);
|
||||
EditorGUILayout.PropertyField(m_Reflection.stepSize);
|
||||
EditorGUILayout.PropertyField(m_Reflection.widthModifier);
|
||||
EditorGUILayout.PropertyField(m_Reflection.reflectionBlur);
|
||||
EditorGUILayout.PropertyField(m_Reflection.reflectBackfaces);
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.LabelField("Intensity", EditorStyles.boldLabel);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(m_Intensity.reflectionMultiplier);
|
||||
EditorGUILayout.PropertyField(m_Intensity.fadeDistance);
|
||||
EditorGUILayout.PropertyField(m_Intensity.fresnelFade);
|
||||
EditorGUILayout.PropertyField(m_Intensity.fresnelFadePower);
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.LabelField("Screen Edge Mask", EditorStyles.boldLabel);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(m_ScreenEdgeMask.intensity);
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user