VolumetricLighting/Assets/VolumetricFog/Editor/FogLightEditor.cs
2016-11-01 13:25:56 +01:00

74 lines
1.9 KiB
C#

using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(FogLight))]
[CanEditMultipleObjects]
public class FogLightEditor : Editor
{
SerializedProperty m_IntensityMult;
SerializedProperty m_RangeMult;
SerializedProperty m_ForceOnForFog;
SerializedProperty m_Shadows;
SerializedProperty m_ShadowmapRes;
SerializedProperty m_BlurIterations;
SerializedProperty m_BlurSize;
SerializedProperty m_Bounded;
void OnEnable()
{
m_IntensityMult = serializedObject.FindProperty ("m_IntensityMult");
m_RangeMult = serializedObject.FindProperty ("m_RangeMult");
m_ForceOnForFog = serializedObject.FindProperty ("m_ForceOnForFog");
m_Shadows = serializedObject.FindProperty ("m_Shadows");
m_ShadowmapRes = serializedObject.FindProperty ("m_ShadowmapRes");
m_BlurIterations = serializedObject.FindProperty ("m_BlurIterations");
m_BlurSize = serializedObject.FindProperty ("m_BlurSize");
m_Bounded = serializedObject.FindProperty("m_Bounded");
}
override public void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.PropertyField(m_IntensityMult);
EditorGUILayout.PropertyField(m_RangeMult);
EditorGUILayout.PropertyField(m_ForceOnForFog);
// Section below just for light types with shadow
bool supportsShadows = false;
bool isAreaLight = false;
foreach (FogLight fogLight in targets)
{
if (fogLight.type == FogLight.Type.Area)
{
supportsShadows = true;
isAreaLight = true;
break;
}
else if (fogLight.type == FogLight.Type.Directional)
{
supportsShadows = true;
break;
}
}
if (supportsShadows)
{
EditorGUILayout.Space();
EditorGUILayout.PropertyField(m_Shadows);
EditorGUILayout.PropertyField(m_ShadowmapRes);
EditorGUILayout.PropertyField(m_BlurIterations);
EditorGUILayout.PropertyField(m_BlurSize);
}
if (isAreaLight)
{
EditorGUILayout.Space();
EditorGUILayout.PropertyField(m_Bounded);
}
serializedObject.ApplyModifiedProperties();
}
}