Esempio n. 1
0
    public void Initialize(LightingMainBuffer2D mainBuffer)
    {
        gameObject.transform.parent = Buffers.Get().transform;

        meshRenderer = gameObject.AddComponent <MeshRenderer>();
        meshRenderer.sharedMaterial = mainBuffer.GetMaterial();

        BufferPreset bufferPreset = mainBuffer.GetBufferPreset();

        bufferPreset.sortingLayer.ApplyToMeshRenderer(meshRenderer);

        // Disable Mesh Renderer Settings
        meshRenderer.shadowCastingMode         = UnityEngine.Rendering.ShadowCastingMode.Off;
        meshRenderer.receiveShadows            = false;
        meshRenderer.lightProbeUsage           = UnityEngine.Rendering.LightProbeUsage.Off;
        meshRenderer.reflectionProbeUsage      = UnityEngine.Rendering.ReflectionProbeUsage.Off;
        meshRenderer.allowOcclusionWhenDynamic = false;

        UpdatePosition();

        meshFilter      = gameObject.AddComponent <MeshFilter>();
        meshFilter.mesh = LightingRender2D.GetMesh();
    }
Esempio n. 2
0
        static public Vector2Int GetScreenResolution(LightingMainBuffer2D buffer)
        {
            BufferPreset bufferPreset = buffer.GetBufferPreset();

            if (bufferPreset == null)
            {
                return(Vector2Int.zero);
            }

            Camera camera = buffer.cameraSettings.GetCamera();

            if (camera == null)
            {
                return(Vector2Int.zero);
            }

            float resolution = bufferPreset.lightingResolution;

            int screenWidth  = (int)(camera.pixelRect.width * resolution);
            int screenHeight = (int)(camera.pixelRect.height * resolution);

            return(new Vector2Int(screenWidth, screenHeight));
        }
Esempio n. 3
0
        public static void Draw(Camera camera, BufferPreset bufferPreset)
        {
            DarknessColor(camera, bufferPreset);

            LightingLayerSetting[] layerSettings = bufferPreset.nightLayers.Get();

            if (layerSettings == null)
            {
                return;
            }

            if (layerSettings.Length < 1)
            {
                return;
            }

            for (int i = 0; i < layerSettings.Length; i++)
            {
                LightingLayerSetting nightLayer = layerSettings[i];

                if (pass.Setup(nightLayer, camera) == false)
                {
                    continue;
                }

                if (nightLayer.sorting == LayerSorting.None)
                {
                    NoSort.Draw(pass);
                }
                else
                {
                    pass.SortObjects();

                    Sorted.Draw(pass);
                }
            }
        }
Esempio n. 4
0
    public static void DrawProfile(LightingSettings.Profile profile)
    {
        EditorGUI.BeginChangeCheck();

        // Common Settings

        CommonSettings(profile.bufferPresets.list[0]);

        EditorGUILayout.Space();

        // Sorting Layer

        SortingLayer(profile.bufferPresets.list[0].sortingLayer);

        EditorGUILayout.Space();

        // Quality Settings

        QualitySettings.Draw(profile);

        EditorGUILayout.Space();

        // Layers

        Layers.Draw(profile);

        EditorGUILayout.Space();

        // Day Lighting

        DayLighting.Draw(profile);

        EditorGUILayout.Space();

        // Fog of War

        EditorGUILayout.Space();

        // Buffer Presets

        BufferPresets.Draw(profile.bufferPresets);

        EditorGUILayout.Space();

        // Light Presets

        LightPresets.Draw(profile.lightPresets);

        EditorGUILayout.Space();

        // Event Presets

        EventPresets.Draw(profile.eventPresets);

        EditorGUILayout.Space();

        // Disable

        profile.disable = EditorGUILayout.Toggle("Disable", profile.disable);

        EditorGUI.EndChangeCheck();

        if (GUI.changed)
        {
            if (EditorApplication.isPlaying == false)
            {
                if (Lighting2D.Profile == profile)
                {
                    Light2D.ForceUpdateAll();

                    LightingManager2D.ForceUpdate();

                    foreach (OnRenderMode onRender in OnRenderMode.List)
                    {
                        BufferPreset bufferPreset = onRender.mainBuffer.GetBufferPreset();
                        bufferPreset.sortingLayer.ApplyToMeshRenderer(onRender.meshRenderer);
                    }
                }

                EditorUtility.SetDirty(profile);
            }
        }
    }