public void UpdateMainBuffers() { for(int i = 0; i < cameraSettings.Length; i++) { CameraSettings cameraSetting = cameraSettings[i]; if (cameraSetting.renderMode == CameraSettings.RenderMode.Disabled) { continue; } LightingMainBuffer2D buffer = LightingMainBuffer2D.Get(cameraSetting); if (buffer != null) { buffer.cameraSettings.renderMode = cameraSetting.renderMode; buffer.cameraSettings.renderLayerId = cameraSetting.renderLayerId; if (buffer.cameraSettings.customMaterial != cameraSetting.customMaterial) { buffer.cameraSettings.customMaterial = cameraSetting.customMaterial; buffer.ClearMaterial(); } if (buffer.cameraSettings.renderShader != cameraSetting.renderShader) { buffer.cameraSettings.renderShader = cameraSetting.renderShader; buffer.ClearMaterial(); } foreach(Material material in cameraSetting.GetMaterials().materials) { if (material == null) { continue; } Camera camera = cameraSetting.GetCamera(); if (cameraSetting.cameraType == CameraSettings.CameraType.SceneView) { CameraMaterials.SetMaterial(2, material, camera, buffer.renderTexture); } else { CameraMaterials.SetMaterial(1, material, camera, buffer.renderTexture); } } } } for(int i = 0; i < LightingMainBuffer2D.List.Count; i++) { LightingMainBuffer2D buffer = LightingMainBuffer2D.List[i]; if (buffer != null) { buffer.Update(); } } if (LightingMainBuffer2D.List.Count > 0) { foreach(LightingMainBuffer2D buffer in LightingMainBuffer2D.List) { if (Lighting2D.disable) { buffer.updateNeeded = false; return; } CameraSettings cameraSettings = buffer.cameraSettings; bool render = cameraSettings.renderMode != CameraSettings.RenderMode.Disabled; if (render && cameraSettings.GetCamera() != null) { buffer.updateNeeded = true; } else { buffer.updateNeeded = false; } } } }