override public void OnInspectorGUI()
    {
        LightingSource2D script = target as LightingSource2D;

        EditorGUI.BeginDisabledGroup(true);
        EditorGUILayout.EnumPopup("Preset", LightingManager2D.Get().preset);
        EditorGUI.EndDisabledGroup();

        //script.lightingCollisionLayer = (LightingCollisionLayer)EditorGUILayout.EnumPopup("Collision Layer", script.lightingCollisionLayer);
        //script.lightingMaskLayer = (LightingMaskLayer)EditorGUILayout.EnumPopup("Mask Layer", script.lightingMaskLayer);
        script.layerCount = EditorGUILayout.IntField("Layer Count", script.layerCount);

        foldout = EditorGUILayout.Foldout(foldout, "Layers");
        if (foldout)
        {
            EditorGUI.indentLevel = EditorGUI.indentLevel + 1;
            for (int i = 0; i < script.layerCount; i++)
            {
                if (script.layerSetting.Length <= i)
                {
                    System.Array.Resize(ref script.layerSetting, i + 1);
                }
                if (script.layerSetting[i] == null)
                {
                    script.layerSetting[i] = new LayerSetting();
                }
                script.layerSetting[i].layerID        = (LightingLayer)EditorGUILayout.EnumPopup("Layer ID", script.layerSetting[i].layerID);
                script.layerSetting[i].renderingOrder = (LightRenderingOrder)EditorGUILayout.EnumPopup("Order", script.layerSetting[i].renderingOrder);
            }
            EditorGUI.indentLevel = EditorGUI.indentLevel - 1;
        }

        Color newColor = EditorGUILayout.ColorField("Color", script.lightColor);

        if (script.lightColor.Equals(newColor) == false)
        {
            newColor.a        = 1f;
            script.lightColor = newColor;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newAlpha = EditorGUILayout.Slider("Alpha", script.lightAlpha, 0, 1);

        if (script.lightAlpha != newAlpha)
        {
            script.lightAlpha = newAlpha;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newLightSize = EditorGUILayout.FloatField("Size", script.lightSize);

        if (newLightSize != script.lightSize)
        {
            script.lightSize = newLightSize;

            LightingMainBuffer2D.ForceUpdate();
        }

        switch (LightingManager2D.Get().fixedLightBufferSize)
        {
        case true:
            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.EnumPopup("Buffer Size", LightingManager2D.Get().fixedLightTextureSize);
            EditorGUI.EndDisabledGroup();

            break;

        case false:
            script.textureSize = (LightingSourceTextureSize)EditorGUILayout.EnumPopup("Buffer Size", script.textureSize);
            break;
        }

        script.lightSprite = (LightingSource2D.LightSprite)EditorGUILayout.EnumPopup("Light Sprite", script.lightSprite);

        if (script.lightSprite == LightingSource2D.LightSprite.Custom)
        {
            Sprite newSprite = (Sprite)EditorGUILayout.ObjectField("Sprite", script.sprite, typeof(Sprite), true);
            if (newSprite != script.sprite)
            {
                script.sprite = newSprite;
                script.SetMaterial();

                LightingMainBuffer2D.ForceUpdate();
            }
        }
        else
        {
            if (script.sprite != LightingSource2D.GetDefaultSprite())
            {
                script.sprite = LightingSource2D.GetDefaultSprite();
                script.SetMaterial();

                LightingMainBuffer2D.ForceUpdate();
            }
        }

        script.enableCollisions = EditorGUILayout.Toggle("Apply Shadows & Masks", script.enableCollisions);

        script.rotationEnabled = EditorGUILayout.Toggle("Apply Rotation", script.rotationEnabled);

        script.additive = EditorGUILayout.Toggle("Apply Additive Shader", script.additive);

        if (script.additive)
        {
            script.additive_alpha = EditorGUILayout.Slider("Additive Alpha", script.additive_alpha, 0, 1);
        }

        script.eventHandling = EditorGUILayout.Toggle("Apply Event Handling", script.eventHandling);

        script.drawInsideCollider = EditorGUILayout.Toggle("Apply Light Inside Collider", script.drawInsideCollider);

        if (targets.Length > 1)
        {
            if (GUILayout.Button("Apply to All"))
            {
                foreach (Object obj in targets)
                {
                    LightingSource2D copy = obj as LightingSource2D;
                    if (copy == script)
                    {
                        continue;
                    }


                    copy.layerSetting[0].renderingOrder = script.layerSetting[0].renderingOrder;
                    copy.layerSetting[1].renderingOrder = script.layerSetting[1].renderingOrder;

                    copy.lightColor  = script.lightColor;
                    copy.lightAlpha  = script.lightAlpha;
                    copy.lightSize   = script.lightSize;
                    copy.textureSize = script.textureSize;

                    copy.enableCollisions = script.enableCollisions;
                    copy.rotationEnabled  = script.rotationEnabled;
                    copy.additive         = script.additive;
                    copy.additive_alpha   = script.additive_alpha;


                    copy.eventHandling      = script.eventHandling;
                    copy.drawInsideCollider = script.drawInsideCollider;

                    copy.lightSprite = script.lightSprite;
                    copy.sprite      = script.sprite;
                    copy.SetMaterial();
                }

                LightingMainBuffer2D.ForceUpdate();
            }
        }

        if (GUI.changed && EditorApplication.isPlaying == false)
        {
            EditorUtility.SetDirty(target);
            EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
        }
    }
    override public void OnInspectorGUI()
    {
        LightingSource2D script = target as LightingSource2D;

        EditorGUI.BeginDisabledGroup(true);
        EditorGUILayout.EnumPopup("Preset", LightingManager2D.Get().preset);
        EditorGUI.EndDisabledGroup();

        Color newColor = EditorGUILayout.ColorField("Color", script.lightColor);

        if (script.lightColor.Equals(newColor) == false)
        {
            newColor.a        = 1f;
            script.lightColor = newColor;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newAlpha = EditorGUILayout.Slider("Alhpa", script.lightAlpha, 0, 1);

        if (script.lightAlpha != newAlpha)
        {
            script.lightAlpha = newAlpha;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newLightSize = EditorGUILayout.FloatField("Size", script.lightSize);

        if (newLightSize != script.lightSize)
        {
            script.lightSize = newLightSize;

            LightingMainBuffer2D.ForceUpdate();
        }

        script.textureSize = (LightingSource2D.TextureSize)EditorGUILayout.EnumPopup("Buffer Size", script.textureSize);
        script.lightSprite = (LightingSource2D.LightSprite)EditorGUILayout.EnumPopup("Light Sprite", script.lightSprite);

        if (script.lightSprite == LightingSource2D.LightSprite.Custom)
        {
            Sprite newSprite = (Sprite)EditorGUILayout.ObjectField("Sprite", script.sprite, typeof(Sprite), true);
            if (newSprite != script.sprite)
            {
                script.sprite = newSprite;
                script.SetMaterial();

                LightingMainBuffer2D.ForceUpdate();
            }
        }
        else
        {
            if (script.sprite != LightingSource2D.GetDefaultSprite())
            {
                script.sprite = LightingSource2D.GetDefaultSprite();
                script.SetMaterial();

                LightingMainBuffer2D.ForceUpdate();
            }
        }

        script.rotationEnabled = EditorGUILayout.Toggle("Enable Rotation", script.rotationEnabled);
    }