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(); }
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)); }
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); } } }
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); } } }