private void OnSceneGUI()
{
Light target = (Light) base.target;
Color color = Handles.color;
if (target.enabled)
{
Handles.color = kGizmoLight;
}
else
{
Handles.color = kGizmoDisabledLight;
}
float range = target.range;
switch (target.type)
{
case LightType.Spot:
{
Color color2 = Handles.color;
color2.a = Mathf.Clamp01(color.a * 2f);
Handles.color = color2;
Vector2 angleAndRange = new Vector2(target.spotAngle, target.range);
angleAndRange = Handles.ConeHandle(target.transform.rotation, target.transform.position, angleAndRange, 1f, 1f, true);
if (GUI.changed)
{
Undo.RecordObject(target, "Adjust Spot Light");
target.spotAngle = angleAndRange.x;
target.range = Mathf.Max(angleAndRange.y, 0.01f);
}
break;
}
case LightType.Point:
range = Handles.RadiusHandle(Quaternion.identity, target.transform.position, range, true);
if (GUI.changed)
{
Undo.RecordObject(target, "Adjust Point Light");
target.range = range;
}
break;
case LightType.Area:
{
EditorGUI.BeginChangeCheck();
Vector2 vector2 = Handles.DoRectHandles(target.transform.rotation, target.transform.position, target.areaSize);
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(target, "Adjust Area Light");
target.areaSize = vector2;
}
break;
}
}
Handles.color = color;
}