|
|
- using System.Collections;
- using System.Collections.Generic;
-
- using UnityEngine;
-
- using UnityEditor;
-
-
- [CustomEditor(typeof(FogVolumeLight))]
- public class FogVolumeLightEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- GUILayout.Space(10.0f);
- serializedObject.Update();
-
- GUILayout.BeginVertical("box");
-
- var usesNormalLight = serializedObject.FindProperty("IsAddedToNormalLight");
- if (usesNormalLight.boolValue)
- {
- EditorGUILayout.HelpBox("This light will use the settings of the light on this GameObject.\n\nRemove this component if the light should not be recognized by Fog Volume 3", MessageType.Info);
-
- }
- else
- {
- var enabled = serializedObject.FindProperty("Enabled");
- if (GUILayout.Button(enabled.boolValue ? "Disable the light" : "Enable the light"))
- {
- enabled.boolValue = !enabled.boolValue;
- }
-
- if (enabled.boolValue == true)
- {
- GUILayout.Space(10.0f);
-
- var isPointLight = serializedObject.FindProperty("IsPointLight");
- int selectedLightType = isPointLight.boolValue ? 0 : 1;
-
- selectedLightType =
- EditorGUILayout.Popup("Light Type: ",
- selectedLightType,
- m_lightTypes,
- EditorStyles.toolbarButton);
-
- if (selectedLightType == 0) { isPointLight.boolValue = true; }
- else { isPointLight.boolValue = false; }
-
- GUILayout.Space(10.0f);
-
- var color = serializedObject.FindProperty("Color");
- EditorGUILayout.PropertyField(color, new GUIContent("Color:"));
-
- GUILayout.Space(10.0f);
-
- var intensity = serializedObject.FindProperty("Intensity");
- EditorGUILayout.Slider(intensity,
- MinIntensity,
- MaxIntenstity,
- new GUIContent("Intensity:"));
-
- GUILayout.Space(10.0f);
-
- var range = serializedObject.FindProperty("Range");
- EditorGUILayout.Slider(range, MinRange, MaxRange, new GUIContent("Range:"));
-
-
-
- if (selectedLightType == 1)
- {
- GUILayout.Space(10.0f);
- var angle = serializedObject.FindProperty("Angle");
- EditorGUILayout.Slider(angle,
- MinSpotAngle,
- MaxSpotAngle,
- new GUIContent("SpotAngle:"));
- }
- }
- }
- GUILayout.EndVertical();
-
- serializedObject.ApplyModifiedProperties();
- }
-
- private const float MinIntensity = 0.0f;
- private const float MaxIntenstity = 50.0f;
- private const float MinRange = 0.0f;
- private const float MaxRange = 500.0f;
- private const float MinSpotAngle = 0.0f;
- private const float MaxSpotAngle = 180.0f;
-
- private readonly string[] m_lightTypes = new[]
- {
- "Point Light",
- "Spot Light"
- };
- }
|