Esempio n. 1
0
    override public void OnInspectorGUI()
    {
        LightingTilemapCollider2D script = target as LightingTilemapCollider2D;

        script.mapType = (LightingTilemapCollider2D.MapType)EditorGUILayout.EnumPopup("Tilemap Type", script.mapType);

        script.colliderType           = (LightingTilemapCollider2D.ColliderType)EditorGUILayout.EnumPopup("Collision Type", script.colliderType);
        script.lightingCollisionLayer = (LightingLayer)EditorGUILayout.EnumPopup("Collision Layer", script.lightingCollisionLayer);
        script.maskType = (LightingTilemapCollider2D.MaskType)EditorGUILayout.EnumPopup("Mask Type", script.maskType);

        if (script.maskType != LightingTilemapCollider2D.MaskType.None)
        {
            script.lightingMaskLayer = (LightingLayer)EditorGUILayout.EnumPopup("Mask Layer", script.lightingMaskLayer);
            script.maskMode          = (LightingMaskMode)EditorGUILayout.EnumPopup("Mask Mode", script.maskMode);
        }
        else
        {
            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.EnumPopup("Mask Layer", script.lightingMaskLayer);
            EditorGUILayout.EnumPopup("Mask Mode", script.maskMode);
            EditorGUI.EndDisabledGroup();
        }

        script.dayHeight = EditorGUILayout.Toggle("Day Height", script.dayHeight);
        if (script.dayHeight)
        {
            script.height = EditorGUILayout.FloatField("Height", script.height);
        }

        //script.ambientOcclusion = EditorGUILayout.Toggle("Ambient Occlusion", script.ambientOcclusion);
        //if (script.ambientOcclusion)  {
        //	script.occlusionSize = EditorGUILayout.FloatField("Occlussion Size", script.occlusionSize);
        //}

        if (GUILayout.Button("Update Collisions"))
        {
            script.Initialize();

            foreach (LightingSource2D light in LightingSource2D.GetList())
            {
                light.movement.ForceUpdate();
            }

            LightingMainBuffer2D.ForceUpdate();
        }

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

        script.enable = EditorGUILayout.Toggle("Enable", script.enable);

        EditorGUI.BeginDisabledGroup(script.enable == false);

        script.preset = (LightingManager2D.Preset)EditorGUILayout.EnumPopup("Preset", script.preset);

        Color newDarknessColor = EditorGUILayout.ColorField("Darkness Color", script.darknessColor);

        if (script.darknessColor.Equals(newDarknessColor) == false)
        {
            script.darknessColor = newDarknessColor;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newShadowDarkness = EditorGUILayout.Slider("Shadow Darkness", script.shadowDarkness, 0, 1);

        if (newShadowDarkness != script.shadowDarkness)
        {
            script.shadowDarkness = newShadowDarkness;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newSunDirection = EditorGUILayout.FloatField("Sun Rotation", script.sunDirection);

        if (newSunDirection != script.sunDirection)
        {
            script.sunDirection = newSunDirection;

            LightingMainBuffer2D.ForceUpdate();
        }

        script.debug = EditorGUILayout.Toggle("Debug", script.debug);

        EditorGUI.EndDisabledGroup();
    }
    override public void OnInspectorGUI()
    {
        LightingManager2D script = target as LightingManager2D;

        script.cameraType = (LightingManager2D.CameraType)EditorGUILayout.EnumPopup("Camera Type", script.cameraType);

        if (script.cameraType == LightingManager2D.CameraType.Custom)
        {
            script.customCamera = (Camera)EditorGUILayout.ObjectField(script.customCamera, typeof(Camera), true);
        }

        script.renderingMode = (LightingManager2D.RenderingMode)EditorGUILayout.EnumPopup("Rendering Mode", script.renderingMode);

        if (script.renderingMode == LightingManager2D.RenderingMode.OnRender)
        {
            foldout_sortingLayer = EditorGUILayout.Foldout(foldout_sortingLayer, "Sorting Layer");
            if (foldout_sortingLayer)
            {
                EditorGUI.indentLevel    = EditorGUI.indentLevel + 1;
                script.sortingLayerID    = (int)EditorGUILayout.Slider("Sorting Layer ID", script.sortingLayerID, 0, 31);
                script.sortingLayerOrder = EditorGUILayout.IntField("Sorting Layer Order", script.sortingLayerOrder);
                script.sortingLayerName  = EditorGUILayout.TextField("Sorting Layer Name", script.sortingLayerName);
                EditorGUI.indentLevel    = EditorGUI.indentLevel - 1;
            }
        }

        foldout_settings = EditorGUILayout.Foldout(foldout_settings, "Settings");
        if (foldout_settings)
        {
            EditorGUI.indentLevel = EditorGUI.indentLevel + 1;
            Color newDarknessColor = EditorGUILayout.ColorField("Darkness Color", script.darknessColor);
            if (script.darknessColor.Equals(newDarknessColor) == false)
            {
                script.darknessColor = newDarknessColor;

                LightingMainBuffer2D.ForceUpdate();
            }

            script.drawAdditiveLights = EditorGUILayout.Toggle("Draw Additive Lights", script.drawAdditiveLights);

            script.drawPenumbra = EditorGUILayout.Toggle("Draw Penumbra", script.drawPenumbra);

            script.drawRooms = EditorGUILayout.Toggle("Draw Rooms", script.drawRooms);

            script.drawOcclusion = EditorGUILayout.Toggle("Draw Occlusion", script.drawOcclusion);

            script.darknessBuffer = EditorGUILayout.Toggle("Draw Darkness Buffer", script.darknessBuffer);

            script.drawSceneView = EditorGUILayout.Toggle("Draw Scene View", script.drawSceneView);

            EditorGUI.indentLevel = EditorGUI.indentLevel - 1;
        }

        foldout_lightingBuffers = EditorGUILayout.Foldout(foldout_lightingBuffers, "Lighting Buffers");
        if (foldout_lightingBuffers)
        {
            script.lightingResolution = EditorGUILayout.Slider("Lighting Resolution", script.lightingResolution, 0.125f, 1.0f);

            script.textureFormat = (RenderTextureFormat)EditorGUILayout.EnumPopup("Light Texture Format", script.textureFormat);

            script.fixedLightBufferSize = EditorGUILayout.Toggle("Fixed Light Buffer", script.fixedLightBufferSize);

            if (script.fixedLightBufferSize)
            {
                script.fixedLightTextureSize      = (LightingSourceTextureSize)EditorGUILayout.EnumPopup("Fixed Light Buffer Size", script.fixedLightTextureSize);
                script.lightingBufferPreload      = EditorGUILayout.Toggle("Pre Load Lights", script.lightingBufferPreload);
                script.lightingBufferPreloadCount = (int)EditorGUILayout.Slider("Pre Load Count", script.lightingBufferPreloadCount, 1, 50);
            }
            else
            {
                EditorGUI.BeginDisabledGroup(true);
                EditorGUILayout.EnumPopup("Fixed Light Buffer Size", script.fixedLightTextureSize);
                EditorGUILayout.Toggle("Pre Load Lights", script.lightingBufferPreload);
                EditorGUILayout.Slider("Pre Load Count", script.lightingBufferPreloadCount, 1, 50);
                EditorGUI.EndDisabledGroup();
            }
        }

        foldout_daylighting = EditorGUILayout.Foldout(foldout_daylighting, "Day Lighting");
        if (foldout_daylighting)
        {
            EditorGUI.indentLevel = EditorGUI.indentLevel + 1;

            // Day Lighting Settings
            EditorGUI.BeginDisabledGroup(true);
            script.preset = LightingManager2D.DayLightingPreset.Default;
            EditorGUILayout.EnumPopup("Preset", LightingManager2D.DayLightingPreset.Default);
            EditorGUI.EndDisabledGroup();

            float newSunDirection = EditorGUILayout.FloatField("Sun Rotation", script.sunDirection);
            if (newSunDirection != script.sunDirection)
            {
                script.sunDirection = newSunDirection;

                LightingMainBuffer2D.ForceUpdate();
            }

            script.drawDayShadows = EditorGUILayout.Toggle("Cast Shadows", script.drawDayShadows);

            float newShadowDarkness = EditorGUILayout.Slider("Shadow Darkness", script.shadowDarkness, 0, 1);
            if (newShadowDarkness != script.shadowDarkness)
            {
                script.shadowDarkness = newShadowDarkness;

                LightingMainBuffer2D.ForceUpdate();
            }

            EditorGUI.indentLevel = EditorGUI.indentLevel - 1;
        }

        foldout_lightingAtlas = EditorGUILayout.Foldout(foldout_lightingAtlas, "Lighting Atlas");
        if (foldout_lightingAtlas)
        {
            EditorGUI.indentLevel      = EditorGUI.indentLevel + 1;
            script.lightingSpriteAtlas = EditorGUILayout.Toggle("Enable Atlas", script.lightingSpriteAtlas);
            script.spriteAtlasScale    = (SpriteAtlasScale)EditorGUILayout.EnumPopup("Sprites Scaling", script.spriteAtlasScale);



            script.spriteAtlasPreloadFoldersCount = EditorGUILayout.IntField("Folder Count", script.spriteAtlasPreloadFoldersCount);

            EditorGUI.indentLevel = EditorGUI.indentLevel + 1;
            for (int i = 0; i < script.spriteAtlasPreloadFoldersCount; i++)
            {
                if (script.spriteAtlasPreloadFolders.Length <= i)
                {
                    System.Array.Resize(ref script.spriteAtlasPreloadFolders, i + 1);
                }
                //	if (script.spriteAtlasPreloadFolders[i] == null) {
                //	script.spriteAtlasPreloadFolders[i] = "";
                //}
                script.spriteAtlasPreloadFolders[i] = EditorGUILayout.TextField("Folder (" + (i + 1) + ")", script.spriteAtlasPreloadFolders[i]);
            }
            EditorGUI.indentLevel = EditorGUI.indentLevel - 1;



            EditorGUI.indentLevel = EditorGUI.indentLevel - 1;
        }

        script.debug         = EditorGUILayout.Toggle("Debug", script.debug);
        script.disableEngine = EditorGUILayout.Toggle("Disable Engine", script.disableEngine);

        string buttonName = "Re-Initialize";

        if (script.version < LightingManager2D.VERSION)
        {
            buttonName         += " (Outdated)";
            GUI.backgroundColor = Color.red;
        }

        if (GUILayout.Button(buttonName))
        {
            if (script.mainBuffer != null && script.fboManager != null && script.meshRendererMode != null)
            {
                DestroyImmediate(script.mainBuffer.gameObject);
                DestroyImmediate(script.fboManager.gameObject);
                DestroyImmediate(script.meshRendererMode.gameObject);

                script.Initialize();
            }
            else
            {
                DestroyImmediate(script.gameObject);
                LightingManager2D.Get();
            }

            LightingMainBuffer2D.ForceUpdate();
        }

        if (GUI.changed && EditorApplication.isPlaying == false)
        {
            if (target != null)
            {
                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();

        //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());
        }
    }
Esempio n. 5
0
    override public void OnInspectorGUI()
    {
        LightingCollider2D script = target as LightingCollider2D;

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

        script.colliderType = (LightingCollider2D.ColliderType)EditorGUILayout.EnumPopup("Collision Type", script.colliderType);

        if (script.colliderType != LightingCollider2D.ColliderType.None)
        {
            script.lightingCollisionLayer = (LightingLayer)EditorGUILayout.EnumPopup("Collision Layer", script.lightingCollisionLayer);
        }
        else
        {
            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.EnumPopup("Collision Layer", script.lightingCollisionLayer);
            EditorGUI.EndDisabledGroup();
        }

        script.maskType = (LightingCollider2D.MaskType)EditorGUILayout.EnumPopup("Mask Type", script.maskType);

        if (script.maskType != LightingCollider2D.MaskType.None)
        {
            script.lightingMaskLayer = (LightingLayer)EditorGUILayout.EnumPopup("Mask Layer", script.lightingMaskLayer);
        }
        else
        {
            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.EnumPopup("Mask Layer", script.lightingMaskLayer);
            EditorGUI.EndDisabledGroup();
        }

        script.dayHeight = EditorGUILayout.Toggle("Apply Day Shadow", script.dayHeight);
        if (script.dayHeight)
        {
            script.height = EditorGUILayout.FloatField("Height", script.height);
            if (script.height < 0)
            {
                script.height = 0;
            }
        }

        script.ambientOcclusion = EditorGUILayout.Toggle("Apply Ambient Occlusion", script.ambientOcclusion);
        if (script.ambientOcclusion)
        {
            script.smoothOcclusionEdges = EditorGUILayout.Toggle("Smooth Edges", script.smoothOcclusionEdges);
            script.occlusionSize        = EditorGUILayout.FloatField("Occlussion Size", script.occlusionSize);
            if (script.occlusionSize < 0)
            {
                script.occlusionSize = 0;
            }
        }

        script.generateDayMask = EditorGUILayout.Toggle("Apply Day Mask", script.generateDayMask);

        if (GUILayout.Button("Update Collisions"))
        {
            script.Initialize();
            LightingMainBuffer2D.ForceUpdate();
        }

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

                    copy.colliderType           = script.colliderType;
                    copy.lightingCollisionLayer = script.lightingCollisionLayer;

                    copy.maskType          = script.maskType;
                    copy.lightingMaskLayer = script.lightingMaskLayer;

                    copy.dayHeight = script.dayHeight;
                    copy.height    = script.height;

                    copy.ambientOcclusion = script.ambientOcclusion;
                    copy.occlusionSize    = script.occlusionSize;

                    copy.generateDayMask = script.generateDayMask;

                    copy.Initialize();
                }

                LightingMainBuffer2D.ForceUpdate();
            }
        }

        if (GUI.changed && EditorApplication.isPlaying == false)
        {
            EditorUtility.SetDirty(target);
            EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
        }

        //script.lighten = EditorGUILayout.Toggle("Lighten", script.lighten);
        //script.darken = EditorGUILayout.Toggle("Darken", script.darken);
    }
Esempio n. 6
0
    override public void OnInspectorGUI()
    {
        LightingManager2D script = target as LightingManager2D;

        EditorGUI.BeginDisabledGroup(true);
        script.preset = LightingManager2D.Preset.Default;
        EditorGUILayout.EnumPopup("Preset", LightingManager2D.Preset.Default);
        EditorGUI.EndDisabledGroup();

        script.renderingMode = (LightingManager2D.RenderingMode)EditorGUILayout.EnumPopup("Rendering Mode", script.renderingMode);

        if (script.renderingMode == LightingManager2D.RenderingMode.OnRender)
        {
            script.sortingLayerID    = (int)EditorGUILayout.Slider("Sorting Layer ID", script.sortingLayerID, 0, 31);
            script.sortingLayerOrder = EditorGUILayout.IntField("Sorting Layer Order", script.sortingLayerOrder);
            script.sortingLayerName  = EditorGUILayout.TextField("Sorting Layer Name", script.sortingLayerName);
        }

        Color newDarknessColor = EditorGUILayout.ColorField("Darkness Color", script.darknessColor);

        if (script.darknessColor.Equals(newDarknessColor) == false)
        {
            script.darknessColor = newDarknessColor;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newShadowDarkness = EditorGUILayout.Slider("Shadow Darkness", script.shadowDarkness, 0, 1);

        if (newShadowDarkness != script.shadowDarkness)
        {
            script.shadowDarkness = newShadowDarkness;

            LightingMainBuffer2D.ForceUpdate();
        }

        float newSunDirection = EditorGUILayout.FloatField("Sun Rotation", script.sunDirection);

        if (newSunDirection != script.sunDirection)
        {
            script.sunDirection = newSunDirection;

            LightingMainBuffer2D.ForceUpdate();
        }

        script.drawAdditiveLights = EditorGUILayout.Toggle("Draw Additive Lights", script.drawAdditiveLights);

        script.drawRooms = EditorGUILayout.Toggle("Draw Rooms", script.drawRooms);

        script.drawOcclusion = EditorGUILayout.Toggle("Draw Occlusion", script.drawOcclusion);

        script.drawDayShadows = EditorGUILayout.Toggle("Draw Day Shadows", script.drawDayShadows);

        script.darknessBuffer = EditorGUILayout.Toggle("Draw Main Buffer", script.darknessBuffer);

        script.drawSceneView = EditorGUILayout.Toggle("Draw Scene View", script.drawSceneView);

        script.lightingResolution = EditorGUILayout.Slider("Lighting Resolution", script.lightingResolution, 0.125f, 1.0f);

        script.fixedLightBufferSize = EditorGUILayout.Toggle("Fixed Light Buffer", script.fixedLightBufferSize);

        if (script.fixedLightBufferSize)
        {
            script.fixedLightTextureSize = (LightingSourceTextureSize)EditorGUILayout.EnumPopup("Fixed Light Buffer Size", script.fixedLightTextureSize);
        }
        else
        {
            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.EnumPopup("Fixed Light Buffer Size", script.fixedLightTextureSize);
            EditorGUI.EndDisabledGroup();
        }

        script.batchColliderMask = EditorGUILayout.Toggle("Batch Collider Mask", script.batchColliderMask);

        script.debug         = EditorGUILayout.Toggle("Debug", script.debug);
        script.disableEngine = EditorGUILayout.Toggle("Disable Engine", script.disableEngine);

        string buttonName = "Re-Initialize";

        if (script.version < LightingManager2D.VERSION)
        {
            buttonName         += " (Outdated)";
            GUI.backgroundColor = Color.red;
        }

        if (GUILayout.Button(buttonName))
        {
            if (script.mainBuffer != null && script.fboManager != null && script.meshRendererMode != null)
            {
                DestroyImmediate(script.mainBuffer.gameObject);
                DestroyImmediate(script.fboManager.gameObject);
                DestroyImmediate(script.meshRendererMode.gameObject);

                script.Initialize();
            }
            else
            {
                DestroyImmediate(script.gameObject);
                LightingManager2D.Get();
            }

            LightingMainBuffer2D.ForceUpdate();
        }

        if (GUI.changed && EditorApplication.isPlaying == false)
        {
            if (target != null)
            {
                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);
    }