Ejemplo n.º 1
0
	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;
				}
			}
		}
	}